Escolar Documentos
Profissional Documentos
Cultura Documentos
I. Create Foundations
To create an isolated footing, click on the Isolated Footing Tool icon. In the Tool window, you can modify the default
data before creating any footings, or you may choose to use the default data and change the footings afterward.
Possible foundation types include Isolated Footing, Combined Footing, Continuous Footing, Strap Footing, Wall
Footing and Mat Foundation. Please see Foundations for more information.
Click on a grid snap in the Visual Editor to place a foundation in the model.
Creating an isolated footing.
To define foundation loads, go to Define > Load Cases and switch to the Reactions tab. Here you can enter loads
applied to the top of the foundation pedestals.
For more information on load cases, please see Load Cases Dialog and Load Cases and Combinations.
You can view the created loads in the Visual Editor Window using the Reaction Load Tool.
To edit soil properties, go to Define > Soil Profiles. Here you can enter data for the soil profiles used in code checks.
For more information, please see Soil Profiles Dialog.
From the Main Menu, go to Run -> Analyze And Code Check.
Note that by default, checks using the Flexible Method (requiring finite element analysis) will not be included. To
change this, go to the Settings tab in the Design Input Window and under "Run Checks", check the appropriate
categories to include them.
Once the code checks have finished, you can view results graphically in the Visual Editor Window or numerically in
the Design Output Window.
For more information about viewing graphical results, please see the Code Check Result Tool, Rigid Result Tool and
the Flexible Result Tool.
In addition to using the Visual Editor and define dialogs to input model data, you can use the following alternative
methods:
• Import Spreadsheets
• Import Toolbox Extensions
Import Spreadsheets
Import spreadsheets provide a convenient way to copy tabular data from an external source such as Excel or S-
FRAME spreadsheets. For more information, please see Import Spreadsheets Dialog.
Several toolbox extensions are included with S-FOUNDATION, including Revit Link Import, Foundation Wizard, and
Import CSV. These can be found in Tools > Toolbox > Import. For more information, please see Toolbox Extensions.
Index
Foundations
S-FOUNDATION allows you to easily define and edit isolated footings, combined footings, continuous footings, wall
footings, strap footings, mat foundations and pile foundations. The foundation connections to columns can be
modeled with or without pedestals, and with or without base plates.
Types
Other
Name Description
Names
Image
Pad
A single Footing,
Isolated pedestal or Spread
Footing column on a Footing,
pad. Bucket
Foundation
Two
Combined pedestals or Spread
Footing columns on a Footing
pad.
Three or
more co- Strip
Continuous linear Footing,
Footing pedestals or Spread
columns on a Footing
pad.
Two isolated
footings
connected by
a strap beam
between the
pedestals or
columns. The
Combined
strap can
Strap Footing,
connect
Footing Spread
anywhere on
Footing
the
pedestals, or
in the case of
columns, the
strap will
connect the
pads.
A pad with a
wall on top of
it. The wall
footing may Strip
or may not Footing,
Wall have Continuous
Footing pedestals, Footing,
and may be Spread
loaded along Footing
the wall or at
the
pedestals.
Raft
Footing,
Any number Mat-Slab
of pedestals Foundation,
or columns in On-Grade
Mat any Mat
Foundation configuration. Foundation,
May be Slab-On-
loaded at the Grade
pedestals. Foundation,
Spread
Footing
Any pad can
be converted
to a pile cap
foundation by
converting
Pile the pad to a Deep
Foundations pile cap. Pile Foundation
foundations
are
supported by
the piles and
not the soil.
Pile Foundations
Any foundation, regardless of type, may become a pile foundation. Therefore you could create an isolated footing pile
cap connected to one column, a combined footing pile cap connected to two columns or even a pile supported mat
foundation connected to many columns in any arrangement. The piles in the pile cap can be configured to
automatically organize piles in the most compact way for the pile count, may be configured in rows, or can be
customized to any configuration. Piles may be inclined and rotated and the entire pile group may be offset and
rotated.
IMPORTANT: Please note that all rigid code checks for piles assume that the pile configuration is symmetrical. If a
pile configuration is asymmetrical, code check results for rigid checks will be inaccurate and should not be used.
Pedestals
Pedestals may be rectangle, square, circle or regular polygon shapes such as hexagon or octagon. Pedestal rebar
configurations are generated according to code using the S-CONCRETE Design Engine.
Pads and pile caps may be rectangle or square shapes. The rebar is configurable in rebar strips, with or without
hooks. You may define rebar strips in two directions, local x and y. Each strip has a top and bottom rebar layer. The
rebar strips may vary in width, bar count, bar size and bar material. You may also define extra rebar in the
longitudinal direction that spans only a portion of the pad to account for variation in moment. The rebar is used to
determine precise effective depths for any location on the foundation.
Base Plates and Straps
Base plates may be rectangle, square or circle shapes. Straps may be rectangle or square shapes.
Piles
Piles may be circle or regular polygon shapes such as hexagon or octagon. Pile rebar configurations are generated
according to code using the S-CONCRETE Design Engine. Piles may be defined on an incline with Pile Batter.
Soil Profiles
Soil Profile definitions allow the user to specify elevation, water table elevation, soil density, saturated soil density,
allowable and ultimate bearing capacity, soil friction and adhesion, and modulus of subgrade reaction.
• The concrete used in the foundations may vary between pedestals, piles, straps, walls, pads and
pile caps.
• It is possible to use different soil definitions for each foundation or you may share one definition
between many foundations.
• To model a continuous footing connecting to non-collinear columns you may use a rectangular mat
foundation.
Code Checks
S-FOUNDATION includes structural code checks for pedestals, pads and piles, as well as geotechnical code checks
for foundations and piles. S-FOUNDATION supports the Rigid Method and Flexible Method of design depending on
the object being code checked. The Rigid Method is available for geotechnical checks, pile geotechnical checks, and
Isolated Footing structural checks.
Code Check
S-FOUNDATION defines a code check as the examination of a design requirement that creates a pass/fail status.
The pass/fail status is often determined by comparing a utilization ratio with an acceptable utilization. The utilization
ratio is calculated by the formula: demand / capacity = utilization. Capacities are calculated according to design code
provisions. Demands are calculated using analytical or finite element analysis (FE analysis) solutions depending on
the type of check, and the type of design (Rigid or Flexible) requested.
S-FOUNDATION does not check detailing requirements such as minimum dimensions, minimum reinforcement, bar
spacing and clear cover. It is up to the user to check these requirements.
Code checks often produce multiple utilizations. For instance, the one way shear structural check for a pad will create
utilizations in the x and y directions. The check will report the governing utilization for the purpose of the pass/fail
status; however, all utilization results are available. Intermediate and supplementary calculations are also available
on a code check basis. Code checks are divided into two main categories: Structural and Geotechnical.
Geotechnical checks that use Allowable Stress Design (ASD) use factors of safety, adjustable in the Design Input
Window. The capacity of the check is divided by the corresponding factor of safety, reducing the capacity and
increasing the utilization.
S-FOUNDATION uses the S-CONCRETE Design Engine to perform pedestal structural code checks. Pedestals are
divided into a user specified number of sections, to account for changing moments along the pedestal. Each section
is checked through S-CONCRETE as a column, creating utilizations for each section. Pedestals that have a regular
polygon shape (hexagon, octagon, etc.) are converted into the largest circle that fits inside the polygon when running
checks with the S-CONCRETE Design Engine. Pedestal structural code checks include biaxial bending, biaxial
shear, axial force (compression and tension), and torsion.
For ACI and CSA codes, shear utilizations for pedestals and piles are defined as the summation of Shear X, Shear Y,
and Torsion utilizations (if more than one of these is applicable).
For EC2 codes, shear and torsion resistances are based either on the contribution of the concrete or the contribution
of the reinforcement, i.e. the contribution of the concrete is ignored when the shear and torsion reinforcement are
considered, Clauses 6.2.1(5) and 6.3.2(5). For this reason, you will see "N/A" for either the Concrete utilization or the
Yield X, Yield Y and Crushing utilizations, since those values are not applicable when determining the overall
utilization.
S-FOUNDATION can use both the Rigid Method and Flexible Method for pad structural code checks for isolated
footings. For all other foundations types, including pile caps, only the Flexible Method is supported. The Rigid Method
assumes a rigid pad and calculates capacities and demands according to design codes. The Flexible Method
calculates capacities according to design codes, but calculates demands using finite element analysis (FEA). FEA
demands are calculated from the spring reaction forces, or by integrating shell forces along strip lines whose
orientation and widths are based on pad rebar configurations.
The pad structural checks include one-way shear, punching shear and flexure. The pile cap supports punching shear
check only.
Pad structural checks are affected by the critical section location, and the critical section location is dependent on
pedestals. When foundations have pedestals, the pedestal face is used to determine the critical section. When
foundations do not have pedestals, either by setting the foundation pedestal to "None" or setting the height of the
foundation pedestal to zero, the critical section location is affected. When you use a pedestal that has zero height, the
critical section is calculated in the same way as if the pedestal existed with height. When you set the pedestal to
"None", the base plate dimensions are used to calculate the critical section, and when there is no base plate, the
column dimensions are used instead.
One way shear and Flexure code checks using the flexible method will create finite element strip lines for each rebar
zone. These strip lines will be used to calculate demands for each rebar zone. Demands are determined by scanning
the strip line for the worst demand, including the code defined critical section locations. When scanning the strip line
for the worst demand, areas of the strip line that fall under column locations between critical sections will be
excluded. You can view exclusion areas and critical section locations in the code check details. You can adjust the
step of the strip line scan by changing Design Input > Settings > FEA > Strip Lines > Length Stations.
One way Shear, rigid method is available for Isolated Footings only. Demands are calculated for four code-specified
critical sections at a distance from the pedestal face, positive (+) and negative (-) sides, in both directions X and Y.
Capacities are calculated on a rebar strip basis, and the largest demand from the + and – sides is used to calculate
the utilization ratio for the strip.
The One way Shear, rigid method assumes the pad rebar is defined according to code specifications. The check
calculates demands at the code defined critical sections because the code states the highest demand will exist there.
The check then compares those demands to the capacities of the rebar zones at those critical sections. It does not
check any zones that do not fall on the critical section; therefore it is up to the user to ensure that pad rebar strips
meet code requirements. For instance, if the rebar allotment is very high in a small strip containing the critical section,
the capacity for that strip will be very high, and the code check will be governed by that strip, regardless of
inadequate rebar content in adjacent strips. This is a limitation of the rigid method, and defining custom rebar strips
should be avoided with the rigid method. The flexible method will check any rebar configuration, see below.
For all foundations, the flexible method of calculating One Way Shear demands is done on a rebar zone basis. Finite
element strip lines are auto-created for every rebar zone, in each direction. These strip lines will be used to calculate
demands for each rebar zone. Demands are determined by scanning the strip line for the worst shear, including the
code defined critical section locations. When scanning the strip line for the worst shear, areas of the strip line that fall
under column locations between critical sections will be excluded. You can view exclusion areas and critical section
locations in the code check details. You can adjust the step of the strip line scan by changing Design Input > Settings
> FEA > Strip Lines > Length Stations. Capacities are also calculated on a rebar zone basis, and compared to the
worst zone shear to calculate the utilization ratio for that zone. Effective depths are calculated for the top and bottom
layers, and the minimum excluding zero is used.
Flexure, rigid method is available for isolated footings only. Demands are calculated for code specified rebar strips.
For example, if the code requires one rebar strip in the X direction and three rebar strips in the Y direction.
The Y direction strips create one pedestal strip and two outer strips. Demands are calculated for the top and bottom
of the pad in zones:
• Top X
• Bottom X
Multiple capacities are calculated for each user rebar strip on a rebar zone basis. In the event that the user rebar
zones do not match code specified zones, the largest demand from every code zone that overlaps a user zone will be
used to calculate the utilization ratio for the zone. Utilization ratios are reported on a rebar strip basis by selecting the
largest utilization of all the zones in a strip.
The Pad Flexure code check does not take into account the effects of loss of contact with the Rigid Method, however,
the Flexible Method does. When using the Rigid Method with the Pad Flexure code check, it is important to check the
Uplift code check utilization to ensure there is no loss of contact.
For all foundations, the flexible method of calculating Flexure demands is done on a rebar zone basis for the top and
bottom layers independently. Finite element strip lines are auto-created for every rebar zone, in each direction. These
strip lines will be used to calculate demands for each layer in each rebar zone. Demands are determined by scanning
the strip line for the worst moment, including the code defined critical section locations. When scanning the strip line
for the worst moment, areas of the strip line that fall under column locations between critical sections will be
excluded. You can view exclusion areas and critical section locations in the code check details. You can adjust the
step of the strip line scan by changing Design Input > Settings > FEA > Strip Lines > Length Stations. Capacities are
also calculated on a rebar zone basis for the top and bottom layers. Each layer demand is compared to the layer
capacity to calculate the layer utilizations for each zone.
The Pad Flexure code check takes into account the effects of loss of contact with the Flexible Method.
Punching Shear
For all shallow foundations Punching Shear checks are performed at pedestal locations. In pile caps punching shear
checks are also performed at pile locations. The punching shear check considers the following:
• Shape of the punching perimeter. Rectangular for CSA and ACI codes. Rectangular with round
corners for EC2 code.
• A circle or regular polygon pedestal or pile section is converted into an equivalent square section with
the same area for the purpose of this check.
• Location of the pedestal or pile with respect to the edges of the footing or pile cap, i.e. interior, edge,
or corner.
• Axial load from the pedestal or pile and biaxial moments, if any.
• Eccentricity of the loads mentioned above with respect to the punching section.
• Portion of moments in both directions transferred by uneven shear to the footing or pile cap.
If the punching perimeter lies outside the pad on opposite sides, a utilization of "N/C" will be shown. This means that
the utilization will not be created, and will not be considered when determining the governing code check.
Effective depth for punching shear is calculated for each layer independently. The layer with the smallest effective
depth, excluding zero is used for the check. The layer effective depth is calculated by averaging the effective depths
in both directions of all the rebar zones under the punching perimeter.
It should be noted that for pile caps, the Punching Shear Check at pedestals ignores the effect of piles located
partially or wholly under the punched area, in reducing the punching load. This can lead to conservative results.
S-FOUNDATION uses the S-CONCRETE Design Engine to perform pile structural code checks. Piles are checked
only at the pile cap face, are assumed to be pin connected and in a bi-symmetrical pile distribution.
Piles that have a regular polygon shape (hexagon, octagon, etc.) are converted into the largest circle that fits inside
the polygon when running checks with the S-CONCRETE Design Engine.
Pile structural code checks include biaxial bending, biaxial shear, axial force (compression and tension), and torsion.
S-FOUNDATION can use both the Rigid Method and Flexible Method for foundation geotechnical code checks for all
foundations with the exception of strap footings. For strap footings only the Flexible Method is supported. The Rigid
Method assumes a rigid pad, linear pressure distribution, and calculates demands from the total load: pedestal, pad
and soil weights, buoyancy forces, and the loads applied to the pedestal tops from the superstructure. The Flexible
Method calculates demands using the nonlinear compression-only spring reactions derived from a nonlinear finite
element analysis (FEA).
The foundation geotechnical code checks include soil bearing, overturning, uplift and horizontal sliding.
Soil Bearing
The Soil Bearing code check is based on allowable stress design method (ASD). The soil bearing utilization is
calculated as the ratio of the total loads to the level of the footing base divided by the gross allowable soil bearing
capacity. The gross allowable soil bearing capacity is calculated internally by adding the weight of the removed soil
(called overburden pressure) to the entered soil net allowable bearing capacity.
Horizontal Sliding
Horizontal sliding includes the effects of friction, adhesion and passive/active soil pressure.
Pile Geotechnical code checks include vertical and lateral bearing capacity checks as well as uplift checks. The Rigid
Method assumes a bi-symmetrical pile distribution, calculates demands by distributing the total load to the piles, and
does not take into account pile batter. In the Flexible Method, demands are calculated from the spring reactions on
the joint connecting the pile to the pile cap, the pile distribution does not have to be bi-symmetric, and pile batter is
taken into account with joint coordinate systems. Capacities are entered by the user for compressive, tensile and
lateral resistances.
S-FOUNDATION assumes piles to be pin connected to the pile caps. The pile geotechnical shear checks consider
the extra shear due to the effects of torsion.
Intermediate Calculations
In addition to code check results, S-FOUNDATION also reports numerous intermediate calculations and quantities.
Intermediate calculations include effective rebar depths, modulus of rupture, maximum axial, tensile and compressive
resistances, overburden pressure, punching perimeter, pedestal, pad and soil weights and buoyancies, and corner
pressure and area in compression from soil pressure distribution. You can see these intermediate calculations by
drilling down into the details of each code check.
• Pedestal code checks take into account changing moments along the pedestal by dividing the
pedestal into a number of evenly-spaced sections. If the maximum moment is not at one of the
pedestal ends, you will need to increase the number of sections to capture the effect of the
maximum moment. If the maximum moment is at one of the pedestal ends, you can decrease the
number of sections and speed up pedestal code checks.
Next: Quantities
Foundation Design
Load Cases have data related to foundation design. This data can be found by expanding the Foundation Design
property. In the Foundation Design property you can choose to run load cases for design, set acceptable utilizations
and assign substructure load factors.
Reaction Loads
The dialog contains two tabs, one for Load Case data and one for the Reaction Loads for the load case. To view/edit
the reaction loads, switch to the Reaction Loads tab. You can also view the reaction loads graphically using the
Reaction Load Tool.
Load Cases and Reaction Loads imported from S-FRAME are read-only; to include editable reaction loads in S-
FOUNDATION, you will need to create new Load Cases in S-FOUNDATION. Reaction Loads are created
automatically for new Load Cases when a Foundation is created, but are assigned default load values. Edit Reaction
Loads after creating Load Cases and Foundations.
For more information about Load Cases, please see Load Cases And Combinations.
For more information about using define dialogs, please see Standard Definition Dialogs.
Opening S-FRAME models in S-FOUNDATION will import the model superstructure, load case and load
combinations. Reaction forces from the S-FRAME results will be negated to create the superstructure loads applied
to the pedestal tops. These reaction forces will be added to additional substructure loads. By default, imported load
combinations are set to run both geotechnical and structural checks whereas load cases are not.
When importing load cases, the foundation weight factor is identical to S-FRAME's Z Gravitational Factor but
opposite in sign. Substructure loads, including surcharge loads, and concrete and soil weight (accounting for
buoyancy) are applied to S-FRAME load cases having a non-zero Z-Gravitational Factor by default.
When importing load combinations, load combination load case factors are imported from S-FRAME load
combinations. The combination substructure loads are combined by summing each of the factored load case’s
substructure loads.
After import, you can change the acceptable utilization and code check run status of load cases and combinations,
and with the exception of foundation weight, you can include/exclude additional loads as required.
Importing nonlinear static load cases and load combinations with S-FRAME's incremental results option checked
creates S-FOUNDATION load cases and load combinations with total accumulated results for each load case and
load combination. Importing time history and moving load cases and load combinations produce S-FOUNDATION
load cases and load combinations with results for each time step / moving load step and will produce utilizations for
each step, but will use the governing utilization for results. Vibration and Buckling analyses are ignored during import.
Load cases and load combinations may also be created directly by you through tools, dialogs, spreadsheets or
through scripts and by reading files through the OPEN API.
When creating user load cases, you set the load case foundation weight factor, include/exclude additional loads and
set the loads at the pedestal tops.
When creating user load combinations, you set the load cases and factors to include in the combination. Loads at the
pedestal tops and additional loads are created by summing the loads for each load case multiplied by the load case
factor.
• Load cases imported from S-FRAME have their code check run status set to off when there are load
combinations, and on, when there are no load combinations. Load combinations imported by S-FRAME
have their code check run status set to on. To change these import settings go to Settings Window >
Application > S-FRAME Import > Run Load Cases.
• Load cases and combinations imported from S-FRAME will create loads for the pedestal tops from all the
imported support/spring reactions, regardless of whether or not the support has a foundation attached to
it. User defined load cases, on the other hand, will make pedestal loads only for joints that have
foundations attached to them. To edit the pedestal loads for user defined load cases, you must first add
foundations to your model.
• Default load cases that are defined when a new model is created have a foundation weight of 1. On the
other hand, new load cases that are added to the model have no foundation weight.
Surcharge Areas
Surcharge areas are polygons defined in the global coordinate system that represent the shape of an area that can
be loaded. Surcharge areas can be any shape, may overlap and contain holes, may exceed foundation dimensions
and may intersect multiple foundations.
There are two methods of surcharge area creation: Default and General. The Default method automatically creates a
surcharge area in the shape of a foundation pad and generates holes in the surcharge area for each pedestal in that
foundation. The General method allows the user to create any shape surcharge area by clicking on grid intersections,
in a similar way to creating panels in S-FRAME, and can add holes of any shape. To exclude the pedestal areas in
the general method, the user should add holes for the pedestals.
Surcharge Loads
Surcharge loads are pressures applied to surcharge areas on a load case basis. When using the Flexible Method of
design, the surcharge loads are decomposed into joint loads and applied to the foundation mesh during a finite
element analysis (FEA). The loads applied to overlapping surcharge areas will be summed. Surcharge loads will not
be considered when using the Rigid Method of foundation design.
It is possible to create and load surcharge areas that exceed the physical dimensions of a foundation or intersect
multiple foundations. The surcharge load decomposition algorithm will ignore the effect of the surcharge load in the
space between foundations with very good accuracy; however the most accurate decomposition requires defining
surcharge areas that do not exceed the physical shape of the foundation.
• Use the default method of surcharge area creation to quickly cover an entire foundation and
automatically create holes for pedestals.
Note that as you change the selection on the left, properties on the right are updated to reflect the selected object.
Here you may edit properties that are not read-only (i.e. grayed out). To apply changes without closing the dialog,
click Apply. To apply changes and close the dialog, click OK. To close the dialog and discard any unapplied changes,
click Cancel or Close.
Units Dialog
The Units Dialog allows you to define unit settings for the current model.
Note that there are two sets of available units: File and Display. Setting the File units will automatically set the Display
units to the same values. If you just want to temporarily change units for easier visualization or data display, you can
modify the settings for Display without converting the underlying model. This will avoid precision errors that can arise
from converting the model to one set of units and then back to the original set.
To set the units to a default metric or imperial system, click the "Set Metric" or "Set Imperial" button.
Materials defined in S-FRAME will have their properties set to read-only whereas materials created in S-
FOUNDATION will be editable.
The optional Cost field is used for calculating material cost in the Quantities results. For more information, please see
Code Checks.
Data for pad / pile cap dimensions, centroid offsets, and rebar configuration can be edited here.
Filter
The filter drop-down at the top-left of the dialog contains 3 options for displaying data.
Foundation View
Because different foundations with different pedestals can reference the same pad / pile cap, the Foundation setting
lets you view what the pad looks like associated with the selected foundation. If you have just created a new pad that
is not being referenced by any foundation, the only option available is None.
Hide/Show Rebar
To change whether or not the rebar for the pad / pile cap is visible, go to Tools menu of the Pads / Pile Caps Dialog
> Settings to open the Settings dialog. Then go to Show > Rebar and set the boxes to checked for visible, or
unchecked for hidden.
Auto-Calculate Rebar
If you click the 'Auto-Calculate' button in the Rebar section of pad/pile cap properties, S-FOUNDATION will
automatically assign a basic rebar configuration suitable for the current pad/pile cap dimensions. This calculation also
considers the minimum steel area requirements for temperature.
For more information about pad rebar, please see Pad Rebar.
Pedestals Dialog
The Pedestals Dialog allows you to define and edit foundation pedestals.
Data for pedestal dimensions and rebar configuration can be edited here.
Name Description
Export Generates a python script that recreates the model. The script is then saved and opened
Python in the Script Editor.
Settings Opens the Settings Dialog for the Record Playback Window.
Settings Dialog
Name Description
File Open "Embed Command" generates code to open the file, whereas "Extract Objects"
Commands generates code to create the objects contained in the file.
If enabled, generates code to create the model in its final state. Otherwise, generates
Export Final
code that traces through each transaction (i.e. insert, update, or delete) to create the
State
model.
Transaction List
The leftmost panel of the Record Playback Window contains a list of all transactions stored in the model. Double-
clicking a transaction in the list will change the Model's current state to that of the selected transaction. This is
equivalent to undoing or redoing to the desired transaction. If you modify the Model in any way (creating a foundation
for example) while not on the last transaction, all transactions after the current selected will be cleared.
A '*' indicates the current transaction. Selecting a transaction (single-click) will cause the Transaction Breakdown
(middle panel) to be updated.
Transaction Breakdown
The middle panel of the Record Playback Window contains a breakdown of all the objects inserted, updated and
deleted by the transaction. Selecting a specific object will cause its information to be displayed in the Object Details
(rightmost panel).
Object Details
The rightmost panel of the Record Playback Window contains the details of any object selected in the Transaction
Breakdown (middle panel).
Quick Menu
Icon Name Description
Saves the current script. If more than one script is open, saves the script
Save
in the currently active tab.
Save As Saves the current script and allows you to specify a different file name.
Run Script Runs the current script. Output will be sent to the Script Output Window.
Run All Scripts Runs all open scripts. Output will be sent to the Script Output Window.
Unindent Selection Decreases the indent of the selected text by one tab.
Indent Selection Increases the indent of the selected text by one tab.
Comment
Comments out the selected lines (prepends a '#').
Selection
Uncomment
Uncomments the selected lines (removes a '#').
Selection
Tabs
Tab Menu
Save As Saves the current script and allows you to rename the file.
Close All But This Closes all scripts except for the current script.
Copy Full Path Copies the full file path of the current script.
Open Containing Folder Opens the folder containing the current script.
Context menu
A context menu is available by right-clicking the Script Editor Window. Menu items are described in detail below.
Name Description
Bookmarks Controls to toggle a bookmark, navigate to next/previous bookmark, and clear bookmarks.
Mouse Operations
Left Mouse Button Click. Click in the Script Editor with the left mouse button to place the caret at a particular location.
This sets the current editing position.
Select text
Left Mouse Button Drag. Click in the Script Editor and move the mouse to select desired text.
Left Mouse Button Drag + Left Mouse Button Release. Drag and drop the script onto the Script Editor. This is
equivalent to clicking Open from the tab menu or File > Open from the context menu.
Code Snippets
Code snippets are pre-defined blocks of code that make it easier to script and create Toolbox Extensions and
Wizards. To access the Code Snippet menu, press Ctrl + ~ while the Scripting Window has focus. The snippet menu
can be navigated using either the enter and arrow keys, or by double-clicking the left mouse button.
The first page of snippets contains definitions for simple python definitions and logic statements. The Toolbox folder
contains definitions for Toolbox Extensions, Wizards, WizardPages, and everything needed to customize them.
It is quite easy to create a Toolbox Extension using Code Snippets. The following tutorial will explain how to create a
Toolbox Extension that creates a pad using the Script Editor's built-in Code Snippet menu. To view the finished
version of this tutorial, see CreatePad.py.
Start with a new script file, and save it to Documents\S-FRAME Software\S-FOUNDATION 2014\Toolbox\. Press
Ctrl + ~ to open the Code Snippet menu and navigate to the Toolbox folder.
Import statements at the top of a python script allow access to S-FOUNDATION's internal functionality. The Common
Imports code snippet contains the most commonly referenced namespaces. Next, open the snippet menu again, and
navigate back to the Toolbox folder. Select Extension to insert the bare framework for a Toolbox Extension into the
script.
Next, create an empty line between the <data> tags. Open the snippet menu, navigate to the double folder
(Toolbox > Parameters > double), and select the double parameter. Repeat this twice more, for 3 total double
parameters.
Now it's time to give all of the default parameters meaningful names, and create the body of the Extension method.
At this point, we have a functioning Toolbox Extension that can be accessed from Tools > Toolbox > User > Create
Pad. But we can use snippets to add more features to the existing Extension.
Create an empty line underneath the first line of the Extension declaration (line 6 in the example below). Open the
snippet menu, navigate to the Toolbox folder, and select the Row Grid option.
Select everything between (and including) the <data> tags, and paste it between the second set of <row> tags.
Also, change the height value in the last <row> tag to Auto.
Row heights (and column widths) can contain 1 of 3 values:
Name Description
This indicates the row or column takes up all remaining space. Having 2 rows of
*
height="*" means they will both take up half the available space.
This indicates the row or column should only take up as much space as is needed to
Auto
display the content contained within.
Decimal Value This indicates the row or column should take up exactly the amount of space
(ie: 200) specified.
Create an empty line underneath the first <row> tag (line 8 in the example below). Open the snippet menu, navigate
to the Toolbox folder, and select the Drawing option.
Now change the default values in the width, depth and height properties of the newly added rect object. These values
must match the double parameters that were added to the extension in an earlier step.
Because this Extension only adds a pad to the model, and not a complete foundation, we can add a note to users of
the Extension explaining how to use the pad with a new foundation. Create an empty line underneath the last <row>
tag (line 20 in the example below). Open the snippet menu, navigate to the Toolbox folder, and select the Note
option.
Between the <note> tags, add the information we want to provide:
To use this pad, select ID 1 from the Pad dropdown in the Tool Window.
Now that we have added content to the rows of the grid, we should make the Extension larger so that everything can
be displayed properly. This is done by adding height="600" to the Extension declaration.
The Extension is now complete! Save the python file, and access the Create Pad menu item from Tools > Toolbox
> User.
Tips & Tricks
• When adding an import statement at the top of a script, you can see the list of available classes for the
namespace by pressing Ctrl + Space after "from [namespace] import".
Quick Menu
Icon Name Description
Legend Window
The Legend Window allows you to choose a legend for viewing ranges of discrete values of object data in the Visual
Editor Window.
Select a node in the tree to view its corresponding ranges highlighted in the Visual Editor Window.
You can move the legend in the Visual Editor Window by clicking and holding the left mouse button while it is over the
legend. Select the None node to clear the current legend.
Templates
When creating a new model with File menu > New, S-FOUNDATION creates some default objects and design
settings. You can override the defaults used in File menu > New by creating a Template. Templates can include
definitions for Project Info, Units, Soil, Materials, Rebar, Pads, Pedestals, Base Plates, Piles, Reports, Grid Systems
and Design Settings.
Template Preferences
Preferences for Templates can be found in the Preferences Window > Application > Templates. The Template
preferences allow you to use templates, set the Template path and choose which objects to include when saving a
Template. The "include" check boxes do not affect previously saved Templates.
Template Preferences.
To create a Template, set up your model with the objects and design settings you want in the Template. Go to the
Template preferences and choose the objects to include. Save the Template by clicking File menu > Save Template.
Remember the location of where you are saving the Template. Go to the Template preferences and check "Use
Templates on File New". Set the Template Path: click the ellipsis button and navigate to the template you just
created. Now click File menu > New and the template will be loaded.
Loading Templates
The Template identified with the Template Path preference will be loaded every time you click File menu > New. You
can also load a different Template at any time by clicking File menu > Load Template.
Click File > Load Template to load a different Template than the one set in the Template Path.
In addition to the BIM links, all S-FOUNDATION objects and properties are accessible through dialogs and
spreadsheets that support copy/paste operations, and through the S-FRAME OPEN API which gives direct access to
the S-FOUNDATION model through a Python scripting. You can perform file read operations in a python script to
extract a model from a Comma Separated Value (CSV) file and insert the model directly into S-FOUNDATION.
An Import Spreadsheets Dialog allows users to import an entire model, including the superstructure, numerically with
copy/paste as one undoable operation. You open this dialog through the File menu > Import Spreadsheets.
Please see Revit Link for more information on importing Revit documents.
Since all functionality is exposed, your ability to customize and automate is limited only by your imagination. For
instance, you could automate the task of reading a file to extract column shape, column location and support loading,
determine initial foundation pedestal size from column shapes, iteratively increase the size of pads until they pass soil
bearing capacity, determine the minimum area of rebar steel required using the pad thickness requirement for one-
way shear, or automate an entire design with constraints. The sky is the limit.
Customization and automation in S-FOUNDATION is done through the S-FRAME Open API using a number of tools
including: Toolbox Extensions, Recording/Playback and an Integrated Development Environment (IDE) for Python
Scripting.
Toolbox Extensions
Toolbox Extensions are utilities that add new functionality and are run by the click of a menu button inside S-
FOUNDATION. They are created by S-FRAME Software or by end users and are created, edited, shared,
downloaded and installed after release to increase functionality without changing software versions.
Toolbox Extensions hide the complexity of implementing functionality from the end user and prevent accidental
modification, but since they are python scripts underneath the hood, they can be opened, modified and saved in an
editor. Python scripts can become Toolbox Extensions by including a special header and are easily installed by
placing them in the Toolbox Extension folder.
Titles and descriptions imbedded in Toolbox Extensions are shown in the S-FOUNDATION menu and explain to the
end-user what the extensions do. The user may be prompted for various parameters for Toolbox Extensions through
a dialog, complete with default parameters and expected units. Toolbox Extensions can be combined into multi-step
wizards that support branch and looping logic, as well as 3D rendering.
The folders to install Toolbox Extensions may be opened by right clicking Toolbox Extension menu items.
Please see Existing Toolbox Extensions for information on the Toolbox Extensions that S-FOUNDATION comes with,
and Automation Tutorial for instructions on how to create your own Toolbox Extension or Wizard.
Record/Playback
The Record/Playback Window records every model transaction, including file new, file open, unit changes, and model
insert, update, and delete operations. The recorded transactions represent what you can undo and redo, and the
Record/Playback window allows you to skip forwards or backwards to any transaction. In the Record/Playback
Window you can inspect transactions to see the state of transaction objects.
Transaction recordings can be output to a python script. This allows you to easily reproduce a model without having
to input it again, and makes it easy to tweak and adjust the model to suit changing situations. Outputting a recording
into python is the easiest way to start scripting. It saves you the time of typing object properties from scratch and is a
great tool for learning about what properties are available. With a little logic, you can turn your transaction recordings
into powerful python scripts and Toolbox Extensions that automate and encapsulate your expertise.
Please see Automation Tutorial for instructions on how to use the Record Playback window to automate the creation
of isolated footings.
Python Scripting
S-FOUNDATION contains an Integrated Development Environment (IDE) that exposes the entire S-FRAME Open
API to python scripts and gives the user complete access to all settings, model objects, analysis and code check
engines and results.
• Script editor
• Script output window
• Auto-completion and indentation
• Syntax highlighting
• Single script or batch mode
• Errors output as hyperlinks to line in script
• Example scripts and tutorials
Python scripts are very powerful because they expose the complete S-FRAME Open API. In a Python script you can
open S-FRAME superstructure models and analysis results and insert them into the S-FOUNDATION model. You
can dynamically create objects, like foundations, materials, rebar, joints members, panels, loads, load cases and load
combinations and insert them into the model. Once inserted, model objects can be inspected, updated and deleted.
Many objects, such as foundations, create and manage their finite element (FE) model for you once they have been
inserted.
You can perform a code check or finite element analysis in a script and afterwards retrieve the results, or output an
Excel or PDF report. Since python is a fully featured programming language, you can create logic for design
increments and constraints and loop through code check iterations until your requirements are met. All the
application, design and display settings are available so you can fully automate your workflow and even your
graphical user interface.
The S-FOUNDATION Python engine is IronPython and it currently supports Python 2. IronPython is tightly integrated
with Microsoft’s .NET framework, and can make use of the extensive .NET Framework libraries as well as python.
Please see Automation Tutorial for instructions on how to use python scripting to automate the creation of isolated
footings.
• Use the Help Window to browse the S-FRAME Open API. The help window contains
documentation on all of the API objects, properties and methods.
• Make use of the extensive libraries that come with S-FRAME Open API and the .NET framework in
your scripts. Often the job you need to do already is exposed through these APIs.
Next: Rules
Rules
Rules are a powerful feature in S-FOUNDATION that allow for the automatic filtering of objects based on user
specified criteria. These filters can be applied to selections, visibility sets and groups defined in the Groups Window.
There are two types of Rules: Property Rules and Logic Rules.
Property Rules
Property Rules are applied directly to an object collection to create a subset of the collection based on a certain
property value. For example, you can limit what is visible in the Visual Editor to only joints at an elevation greater than
0, or only members of type 'Beam'.
To define a Property Rule, go to Define > Rules. Select the object type for the new rule and click 'Add'. Data for your
new rule will appear.
Select the property you want to apply the rule to and enter the desired criteria.
Property values can be equal, greater than, or less than a specified numeric
Numeric criteria value or may fall into specified ranges.
Property values may equal, contain, start with or end with a specified
String criteria
alphanumeric value.
Choice criteria Property values must belong to a subset of selected enumeration values.
Boolean (True/False)
Property values must match a true/false condition.
criteria
Appropriate criteria fields for the property type will be automatically shown based on the selected property. Note that
Numeric, String and Choice rules may also be inverted to match the exact opposite condition specified. For instance,
if you want to show all panels that are NOT of type 'Mesh', you can create a rule for panels with a panel type Mesh
and then check the 'Invert' checkbox.
Logic Rules
Logic Rules are special rules which allow for the combination of existing Property and Logic Rules. For example,
somebody may want to show all members of type 'Beam' with IDs between 100 and 200 as well as all joints with IDs
above 1000. This can be accomplished by doing the following:
Note the logical operators between rules: 'AND' means that both surrounding conditions must be met to pass the rule,
whereas 'OR' will pass the rule if one (or both) conditions are met. When combining Property Rules for different
object types (e.g. members and joints), only 'OR' is applicable.
When there are more than two logical operators, they are always evaluated in order from top to bottom; for example,
in this case the 'AND' between rules 1 and 2 is evaluated before the 'OR' preceding rule 3.
To select objects by rule, go to Selection > Select > Special... and choose the desired Property or Logic Rule. To
show objects by rule, go to Selection > Show > Special... and choose the desired Property or Logic Rule.
Note that you may do the exact opposite by going to Selection > Unselect > Special... or Selection > Hide > Special.
Rule Groups
Rule Groups are a powerful way of creating dynamic groups that contain only grouping-enabled items which pass an
assigned rule. To create a Rule Group, right-click on the 'Groups' folder in the Groups Window and choose 'Create
New Rule Group'.
Pick the rule you want to assign to the group and click 'OK'.
After assigning a rule to the group, the group will automatically contain only items which pass the rule and will be
updated whenever the model changes.
Automation Tutorial
There are several automation features available in S-FOUNDATION, and the creation and analysis of any object can
be automated. There are 3 ways to automate tasks in S-FOUNDATION:
Name Description
Python scripts allow the user direct access to all of S-FOUNDATION's publicly visible
Python API (Application programming interface) objects and functions. Python can be created
Scripts from scratch in the Script Editor window, or generated from the transactions stored in the
Record Playback window.
Toolbox Extensions are a way to provide user input to python methods. They are single
Toolbox
use, and can be created by prepending special XML comments in front of the python
Extensions
method declaration.
Toolbox Toolbox Wizards are similar to Extensions, but provide multi-page functionality, and
Wizards allow for things like conditions (if-else) and loops (while, foreach).
Toolbox Wizards and Extensions can also be created quickly by using the Scripting Window's Code Snippets feature.
Below is a tutorial on the creation of isolated footings using multiple automation tools.
See CreatIsolated1.py for an example file of the finished product of this tutorial.
Step 1
Save the Python output to the Toolbox folder located at My Documents > S-FRAME Software > S-FOUNDATION
2014 > Toolbox.
Step 4
pad1 = Pad(1)
pad1.Width = 4000
pad1.Depth = 2500
pad1.IsPileCap = False
pad1.Thickness = 500
You can also see at lines 23 and 24 the joint coordinate where we created the footing.
joint1.X = 5
joint1.Y = 5
At this point you have created a python script that automates the creation of a single Isolated Footing. You can
generate an Isolated Footing with this script at any time by altering the properties of the objects created in the script.
For instance you could change the pad dimensions, or the joint location. Try changing some properties and run the
script. Congratulations, you have just automated your first process!
Scripting in Python gives you access to the full S-FOUNDATION API, and exposes not only objects and properties,
but also methods like running a code check. In addition, you can take the Record/Playback output and add
programming logic to create powerful scripts that add new functionality to S-FOUNDATION. For instance you could
read joint locations from a file, loop on those joint locations and creation multiple Isolated Footings at those location
all in the script.
Python scripts are powerful, but expose their complexity directly to the user by requiring the user to edit and run the
script. This can lead to errors, especially if the script is shared among many people. You can encapsulate your
python script into a user-friendly dialog that runs from the S-FOUNDATION menu with the click of a mouse button.
You do this by turning your python script into a Toolbox Extension.
See CreateIsolated2.py for an example file of the finished product of this tutorial.
Step 1
def CreateIsolated():
Step 2
In python, code is considered "part" of a method when it is indented by one underneath that method declaration.
Select all lines after the CreateIsolated method declaration, and press "tab" or the indent button on the Script Editor
window.
Step 3
This declares the method CreateIsolated as a Toolbox Extension. The <extension> XML tags are
prepended with a double hash ##. A title is required within the extension tag (we used "Create Isolated"). A
description is optional, and will show up when the extension menu item tool tip.
Step 4
We can now access our new Toolbox Extension from the S-FOUNDATION menu at Tools > Toolbox > User >
Create Isolated.
The menu item tooltip displays the contents of the description tag as explained in step 3.
Step 5
An isolated footing has now been created with the same properties, and at the same location as the footing we
created in step 1.
Step 6
## <data>
## <parameter type="double" name="x" text="Joint Position X" />
## <parameter type="double" name="y" text="Joint Position Y" />
## </data>
Parameter declarations must be inside of data tags. We will declare both parameters as type double to allow
decimal values. The names of the variables will correspond to their axes, and we will add more descriptive values for
the text attribute (which is displayed to the user in the data grid).
We also have to add two variables to the method signature that we created in step 3. These variable names must
correspond to the name attribute of the parameter declaration.
In this case, the variable names are x and y. Between the parentheses, Replace the line def
CreateIsolated(): with the following line:
Step 7
Now we can add a few more attributes to the parameters we declared in step 6.
Let's add some help text to provide additional information about the parameter (which will be displayed as a tooltip
when hovering over the grid). Additionally, if the parameter is a type with a unit, we can specify that in the
unitType attribute. Lastly, we can specify a default value for the parameter in both metric and imperial units.
Starting at the first parameter element, right after <parameter type="double" name="x"
text="Joint Position X", add a space and insert the following code:
helpText="The X position of the joint." unitType="Length" default="5m|5ft"
We'll do a similar thing for the second parameter element. Right after <parameter type="double"
name="y" text="Joint Position Y", add a space and insert the following code:
Name Description
Values can include int (whole number), double (decimal number), bool (true/false),
type
string, or SFrame.Components.ComponentEnum (creates a drop-down with all items of
(Mandatory)
that component type).
name
The name of the variable used by the Python method.
(Mandatory)
Indicates that the parameter should have a unit when displayed. Values can include
unitType
Length, LengthSmall, Density, Angle, Pressure, and PressurePerUnitLength.
The default value of the parameter. Metric and imperial values are separated with a '|',
default and need to contain the unit. If the unit type is Angle, there is only one value (so no '|' is
needed) and there is no unit required.
Step 8
Once we have added parameters to our Toolbox Extension, we can now assign them to variables within the Python
script. For instance, in the example below, we are taking the parameter we defined as having name x and assigning it
to joint1.X. When the Extension runs, whatever the user specifies for that parameter will be assigned to the joint
location X property.
For the lines setting the X and Y properties of the joint, change the value of '5' to the corresponding variable names.
joint1.X = x
joint1.Y = y
Step 9
Run the CreateIsolated extension again. You will notice a dialog prompting you to enter X and Y values.
Change the default values to 10 and press OK.
Step 10
You will notice that the footing we created back in step one has been re-created, but at grid location 10, 10 instead of
its original location.
You have now created a Toolbox Extension that automates the creation of a single Isolated Footing and
encapsulates that process in an easy to use dialog. You may wish to allow the dialog to create more than one
isolated footing with this extension. You could do this by adding multiple properties for joint locations in the extension,
but this would require you to know how many footing to create beforehand. A more reusable way would be to allow
the user to enter joint locations until they are done adding footings. You can add logic and loops to your Toolbox
Extensions by turning them into Toolbox Wizards.
Step 1
What do we do if we want to create that footing in multiple locations without having to run the extension multiple
times? The next step is to convert our Toolbox Extension into a Wizard.
• A wizard declaration that indicates all the methods used, as well as the logical order those methods are
processed.
We can give our Wizard a title and a description, so let's call it "Isolated Footing Wizard".
We will now add the method created in step 5 (CreateIsolated) to the method declarations. The method declaration
code goes between the wizard tags, and looks like this:
## <methods>
## <method name="CreateIsolated" />
## </methods>
There is an optional property path that can be added to the method declaration if the wizardpage is located in
another file. By default, the Wizard assumes all method declarations are located in the same file as the Wizard.
Specifying the path looks like this:
## <methods>
## <method name="CreateIsolated" path="OtherFile.py" />
## </methods>
For the logic used by the wizard, we want to simply create isolated footings at user-provided co-ordinates until the
user is done. This is accomplished by starting a while loop, and adding the CreateIsolated method
underneath it indented by 1. All methods underneath a while declaration with an indent greater than that of the
"while" will be repeated until the user wishes to continue. The logic declaration goes between the wizard tags,
underneath the method declarations.
## <logic>
## while
## AddJoint
## AddPad
## CreateIsolated
## </logic>
We now have to have to change the extension tags above the CreateIsolated method to wizardpage to
indicate that CreateIsolated is part of a Wizard. Additionally, we have to add the variables wizard and loop to the
method signature of CreateIsolated.
• wizard is a collection of WizardPage objects, and contains all items that have been added by previous
Wizard pages. Using wizard[0] will index into the first page of the wizard, and calling wizard.GetMerged()
will return a collection of all objects added by all previous Wizard pages.
• loop is an integer value indicating how many times the current method has been repeated. This variable is
0 for most methods, and will only be non-zero for methods that are inside while loops.
There are two additional conditionals that can be used in logic declarations:
• if %methodname%
%method2%
else
%method3%
If %methodname% returns a value of true, %method2% will be run, otherwise %method3% will be run.
For an example on how to use if and foreach in logic, you can refer to the built-in Wizard "Foundation
Wizard" available at Tools > Toolbox > Import > Foundation Wizard. Right-click the menu item and select Open
Location to view the file.
If you want your Wizard to clear the model before executing, add the property clearModel="true" to the
Wizard declaration. Your XML will look like this:
## <wizard name="wizardName" description="wizard description"
clearModel="true">
## ...
## </wizard>
If clearModel is set to true, and the model has unsaved changes, the user will be prompted whether or not to
save before proceeding with the Wizard.
Step 2
Delete the line calling FileNew on the Model, and remove the declaration of the inserted collection.
Step 3
At the bottom of the method, remove the call to App.Model.Insert, and to App.Gui.SetCamera.
Step 4
Step 5
Step 6
Finally, we scroll to the bottom of the method, and replace the ID assignments for JointID, PedestalID, BasePlateID
and PadID with loop (instead of 1). SoilProfileID will stay at 1.
Now save the Python file.
Step 7
You will notice that our old extension has disappeared, and that the new Wizard we have created (Isolated Footing
Wizard) has appeared at the bottom of the menu.
Step 8
You will now be prompted to specify the grid location that the isolated footing will be created to.
Press Add Another and enter 10 for the x and y values. Press Add Another and enter 15 for the x and y values.
Now press Next.
Step 9
The Wizard has completed, and has created 3 copies of our original isolated footing and the locations specified.
However, if you go to the Record Playback window, you will notice that we have created 3 copies of the same pad,
pedestal, base plate, etc. This is inefficient, and we should be able to re-use the same object if the dimensions are
the same.
Step 10
Since the only part of our script that is looping is the joint creation, let's pull the joint creation code out into its own
Wizard page, called "Add Joint".
We'll also need to add the declaration for Add Joint to the methods parameter of the Wizard declaration. We
will also tweak the logic declaration to only loop over AddJoint, with CreateIsolated run only once after the loop is
completed.
Lastly, we'll also need to remove the x and y parameters from both the wizard declaration and the method signature
of CreateIsolated, since it no longer has user input.
Step 11
Since we are only creating one of most of our objects now, we'll have to undo one of our earlier steps and replace all
instances of (loop) with (1).
Step 12
We'll also need to set the ID assignments for JointID, PedestalID, BasePlateID and PadID back to 1 (instead of loop).
In order to access the previously created joints, we will now create merged collection of all objects in the wizard
collection. Indexing into that collection with the Joint component enum will return a list of all joints. All that's left is
creating a for loop to iterate over all the joints, and indenting the isolated footing creation code by one.
merged = wizard.GetMerged()
joints = merged[ComponentEnum.Joint]
for j in joints:
isolatedFooting = IsolatedFooting(j.ID)
isolatedFooting.JointID = j.ID
isolatedFooting.PedestalID = 1
isolatedFooting.BasePlateID = 1
isolatedFooting.SoilProfileID = 1
isolatedFooting.PadID = 1
isolatedFooting.Run = True
isolatedFooting.Name = "f" + str(j.ID)
wizard.Add(isolatedFooting)
Step 13
Step 14
If you look at the Record Playback window, you will notice that 3 isolated footings (with joints) have been created, but
only one of each of the other objects.
Step 15
Let's expose more input options to the user. We'll do this by pulling the pad creation code into its own Wizard page.
We can also add a visual representation of the pad to the Wizard page as we're creating it. This is done by splitting
the Wizard page into logical grids, oriented either by row or column. Grids can also be nested (where data / drawing
tags are would be a nested grid).
Step 16
By associating the width, depth and thickness attributes of the rect named Pad with the user input parameters, we
will be able to see the pad in the Wizard page change dimensions as different values are entered. Place the drawing
object inside the first set of row tags as indicated in the previous step.
## <drawing>
## <rect name="Pad" width="width" depth="depth" height="thickness" />
## </drawing>
becomes...
Step 17
Lastly, we'll have to add a method declaration for AddPad to the methods tag in the Wizard declaration.
Since CreateIsolated is the last method we want to run in the Wizard, we will add AddPad ahead of CreateIsolated,
but after the while loop containing AddJoints in the logic declaration.
Step 18
Step 33
The pad dimensions you specified in the first step of the Wizard have been applied to all the footings created at the
specified joint locations.
Congratulations, you have completed your first Toolbox Extension and Toolbox Wizard!
Index
Spreadsheet Window
The Spreadsheet Window contains the details for all objects currently stored in the Model.
Spreadsheet Manager
The Spreadsheet Manager determines what type of object is displayed in the data grid. It can be hidden by
unchecking the 'Show Manager' check box. Selecting a node in the Spreadsheet Manager will refresh the data grid
with the selected object type.
You can change the order and hide and show spreadsheet columns by checking Show Column Visibility in the
Preferences Window. This will open a tree of all of the properties in the current spreadsheet. To hide a property,
uncheck it in the tree. To rearrange properties, drag them in the tree.
Filter
The Spreadsheet filter allows you to reduce the objects displayed in the data grid.
Selection Filter
When the Selection filter is checked, only objects that are selected in the Visual Editor will appear in the
spreadsheet.
Group Filter
When the Group filter is checked, only objects that are in the selected Group in the Groups Window will appear in the
spreadsheet.
Rule Filter
When the Rule filter is checked, only objects that pass the selected rule will appear in the spreadsheet. The drop-
down contains a list of all rules stored in the Model. If None is selected, no rule will be applied even if the Rule
checkbox is checked.
Data Grid
Deleting in Spreadsheets
To delete all the objects of a particular type, right click the spreadsheet name in the Spreadsheet Manager and click
Delete. To delete individual objects in the Spreadsheet, select them in the spreadsheet and press the Delete key on
your computer keyboard.
Index
To import objects, select the object type from the tree in the left pane of the dialog. Select the number of rows you
want to add at the bottom right of the dialog and click Insert. Edit the data in the provided spreadsheets and when
finished click 'OK'. The new objects will be inserted into your S-FOUNDATION model.
To create a new foundation, activate the Mat Foundation tool and change the mode to Create. Left click on two or
more supports or grid snaps in the Visual Editor. On the final location, click a second time to complete the creation of
the foundation. You can also hold down the left mouse button and drag the mouse to create a mat foundation on
multiple supports at once. These support locations are filtered by the current selected grid elevation, within a
tolerance. For information about how to adjust this tolerance, please see Creation Elevation Tolerance.
A rotation can be applied to the mat foundation by either entering it manually or by using an Auto-Generate option. To
rotate the foundation manually, enter a rotation amount in degrees. To automatically rotate a Mat Foundation as you
create it, expand the Rotation Property and check Auto-Generate. This option will apply a rotation to the foundation
based on the first two definition points. The first two definition points will define the local x axis of the foundation.
The base plate, pedestal, and pad to use with new foundations are set through their respective dropdown lists. You
can have your foundations use existing base plates/pedestals/pads by selecting them in the dropdowns, click the
ellipsis buttons to create new base plates/pedestals/pads to use, or you can set the dropdowns to Create New or
Auto, which will create new base plates/pedestals/pads when creating new foundations.
These dropdowns are called reference properties and refer to existing base plates/pedestals/pads by their name. To
learn more about using reference properties, please see Reference Properties, Create New and Auto.
Edit Mode
To edit mat foundations, activate the Mat Foundation Tool and change the mode to Edit. Left click on an existing
foundation in the Visual Editor to see its properties in the tool. You can select multiple foundations by holding down
the control key while left clicking. You can also hold down the left mouse button and drag the mouse to select multiple
foundations to edit.
When multiple foundations have different values for a property, the property value will show '?'. When you change
any of the properties, all selected foundations will be edited.
When making a foundation with a foundation tool such as the Mat Foundation Tool, you can only assign one pedestal
in the create mode, so you cannot initially create a foundation with different height pedestals. You will initially make a
foundation with one pedestal height and update the foundation in a separate step. Choose one pedestal from the
drop down and create your foundation normally.
Pedestal locations are defined by joints, and when we change the height of a pedestal, the joint that defines that
pedestal location needs to be moved to maintain the connection of the pedestal to the pad. The foundation becomes
invalid when we change the pedestal heights, but do not move the joints.
Changing pedestals before moving joints.
To fix the invalid foundation, select each joint and move it down by the difference between the height of the pedestal
and the height of the tallest pedestal to re-connect the pedestals to the pad. In this example, the tallest pedestal is
1000 mm, and we have pedestals that are 800 mm, 500 mm and 0 mm. The joint z values of the smaller pedestals
will have to be lowered to -0.2 m, -0.5 m and -1 m.
Index
Create Mode
To create a new foundation, activate the Mat Foundation tool and change the mode to Create. Left click on two or
more supports or grid snaps in the Visual Editor. On the final location, click a second time to complete the creation of
the foundation. You can also hold down the left mouse button and drag the mouse to create a mat foundation on
multiple supports at once. These support locations are filtered by the current selected grid elevation, within a
tolerance. For information about how to adjust this tolerance, please see Creation Elevation Tolerance.
A rotation can be applied to the mat foundation by either entering it manually or by using an Auto-Generate option. To
rotate the foundation manually, enter a rotation amount in degrees. To automatically rotate a Mat Foundation as you
create it, expand the Rotation Property and check Auto-Generate. This option will apply a rotation to the foundation
based on the first two definition points. The first two definition points will define the local x axis of the foundation.
The base plate, pedestal, and pad to use with new foundations are set through their respective dropdown lists. You
can have your foundations use existing base plates/pedestals/pads by selecting them in the dropdowns, click the
ellipsis buttons to create new base plates/pedestals/pads to use, or you can set the dropdowns to Create New or
Auto, which will create new base plates/pedestals/pads when creating new foundations.
These dropdowns are called reference properties and refer to existing base plates/pedestals/pads by their name. To
learn more about using reference properties, please see Reference Properties, Create New and Auto.
Edit Mode
To edit mat foundations, activate the Mat Foundation Tool and change the mode to Edit. Left click on an existing
foundation in the Visual Editor to see its properties in the tool. You can select multiple foundations by holding down
the control key while left clicking. You can also hold down the left mouse button and drag the mouse to select multiple
foundations to edit.
When multiple foundations have different values for a property, the property value will show '?'. When you change
any of the properties, all selected foundations will be edited.
Next: Merge/Split Tool
Rules
Rules are a powerful feature in S-FOUNDATION that allow for the automatic filtering of objects based on user
specified criteria. These filters can be applied to selections, visibility sets and groups defined in the Groups Window.
There are two types of Rules: Property Rules and Logic Rules.
Property Rules
Property Rules are applied directly to an object collection to create a subset of the collection based on a certain
property value. For example, you can limit what is visible in the Visual Editor to only joints at an elevation greater than
0, or only members of type 'Beam'.
To define a Property Rule, go to Define > Rules. Select the object type for the new rule and click 'Add'. Data for your
new rule will appear.
Select the property you want to apply the rule to and enter the desired criteria.
Property values may equal, contain, start with or end with a specified
String criteria
alphanumeric value.
Choice criteria Property values must belong to a subset of selected enumeration values.
Boolean (True/False)
Property values must match a true/false condition.
criteria
Appropriate criteria fields for the property type will be automatically shown based on the selected property. Note that
Numeric, String and Choice rules may also be inverted to match the exact opposite condition specified. For instance,
if you want to show all panels that are NOT of type 'Mesh', you can create a rule for panels with a panel type Mesh
and then check the 'Invert' checkbox.
Logic Rules
Logic Rules are special rules which allow for the combination of existing Property and Logic Rules. For example,
somebody may want to show all members of type 'Beam' with IDs between 100 and 200 as well as all joints with IDs
above 1000. This can be accomplished by doing the following:
Note the logical operators between rules: 'AND' means that both surrounding conditions must be met to pass the rule,
whereas 'OR' will pass the rule if one (or both) conditions are met. When combining Property Rules for different
object types (e.g. members and joints), only 'OR' is applicable.
When there are more than two logical operators, they are always evaluated in order from top to bottom; for example,
in this case the 'AND' between rules 1 and 2 is evaluated before the 'OR' preceding rule 3.
Using the Rules
To select objects by rule, go to Selection > Select > Special... and choose the desired Property or Logic Rule. To
show objects by rule, go to Selection > Show > Special... and choose the desired Property or Logic Rule.
Note that you may do the exact opposite by going to Selection > Unselect > Special... or Selection > Hide > Special.
Rule Groups
Rule Groups are a powerful way of creating dynamic groups that contain only grouping-enabled items which pass an
assigned rule. To create a Rule Group, right-click on the 'Groups' folder in the Groups Window and choose 'Create
New Rule Group'.
Pick the rule you want to assign to the group and click 'OK'.
After assigning a rule to the group, the group will automatically contain only items which pass the rule and will be
updated whenever the model changes.
Spreadsheet Window
The Spreadsheet Window contains the details for all objects currently stored in the Model.
Spreadsheet Manager
The Spreadsheet Manager determines what type of object is displayed in the data grid. It can be hidden by
unchecking the 'Show Manager' check box. Selecting a node in the Spreadsheet Manager will refresh the data grid
with the selected object type.
Filter
The Spreadsheet filter allows you to reduce the objects displayed in the data grid.
Selection Filter
When the Selection filter is checked, only objects that are selected in the Visual Editor will appear in the
spreadsheet.
Group Filter
When the Group filter is checked, only objects that are in the selected Group in the Groups Window will appear in the
spreadsheet.
Rule Filter
When the Rule filter is checked, only objects that pass the selected rule will appear in the spreadsheet. The drop-
down contains a list of all rules stored in the Model. If None is selected, no rule will be applied even if the Rule
checkbox is checked.
Data Grid
Deleting in Spreadsheets
To delete all the objects of a particular type, right click the spreadsheet name in the Spreadsheet Manager and click
Delete. To delete individual objects in the Spreadsheet, select them in the spreadsheet and press the Delete key on
your computer keyboard.
Index
Online Tutorials & Videos