Advance Steel COM API Reference Guide
Advance Steel COM API Reference Guide
Advance Steel COM API Reference Guide
COM API
Reference Guide
ADVANCE STEEL AS COM API REFERENCE GUIDE
Contents
.CHAPTER 1 INTRODUCTION.............................................................................................................. 7
5.1 GEOMETRY............................................................................................................................... 28
5.1.1 Point3d............................................................................................................................ 28
5.1.2 Point3dArray................................................................................................................... 28
5.1.3 Vector3d.......................................................................................................................... 29
3
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.4 Vector3dArray................................................................................................................. 30
5.1.5 Line3d............................................................................................................................. 30
5.1.6 LineSeg3d....................................................................................................................... 30
5.1.7 LineSeg3dArray.............................................................................................................. 31
5.1.8 Curve3d........................................................................................................................... 31
5.1.9 Arc3d............................................................................................................................... 31
5.1.10 Ray3d.............................................................................................................................. 32
5.1.11 Plane............................................................................................................................... 32
5.1.12 Matrix3d.......................................................................................................................... 33
5.1.13 Matrix3dArray.................................................................................................................. 33
5.1.14 AugPolyline3d................................................................................................................. 34
5.1.15 AugPolylinesArray........................................................................................................... 35
5.1.16 AugPolygon3d................................................................................................................. 35
5.1.17 AugPolygonsArray.......................................................................................................... 36
5.1.18 AugPolygonsArrayArray.................................................................................................. 37
5.1.19 CS3d............................................................................................................................... 37
5.1.20 CS3dArray....................................................................................................................... 38
5.1.21 Extents............................................................................................................................ 38
5.1.22 PlaneArray...................................................................................................................... 38
5.1.23 VertexInfo........................................................................................................................ 38
5.1.24 VertexInfoArray............................................................................................................... 39
5.2 PROFILES ACCESS.................................................................................................................... 39
5.2.1 ProfType.......................................................................................................................... 39
5.2.2 ProfSectVal..................................................................................................................... 42
5.2.3 ProfGapCollection........................................................................................................... 42
5.3 UTIL FACET............................................................................................................................... 43
5.3.1 AstModeler...................................................................................................................... 43
5.4 DATABASE ACCESS................................................................................................................... 44
5.4.1 OdbcUtils......................................................................................................................... 44
5.4.2 OdbcTable....................................................................................................................... 44
5.5 STEELAUTOMATION................................................................................................................... 45
5.5.1 AstObject......................................................................................................................... 45
5.5.2 EqualPartObject.............................................................................................................. 46
5.5.3 AstFeatObject................................................................................................................. 47
5.5.4 PlateFeat......................................................................................................................... 47
5.5.5 PlateFeatVertex............................................................................................................... 47
5.5.6 PlateFeatEdge................................................................................................................ 47
5.5.7 PlateFeatContour............................................................................................................ 47
5.5.8 Chamfer.......................................................................................................................... 48
5.5.9 Fillet................................................................................................................................. 49
4
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.10 PlateContourNotch.......................................................................................................... 49
5.5.11 PlateWeldingPreparation................................................................................................. 50
5.5.12 PlateWeldingBevel.......................................................................................................... 50
5.5.13 PlateWeldingFillet............................................................................................................ 50
5.5.14 BeamNotch..................................................................................................................... 51
5.5.15 BeamNotchStd................................................................................................................ 51
5.5.16 BeamNotchEx................................................................................................................. 52
5.5.17 BeamContourNotch......................................................................................................... 52
5.5.18 BeamMultiContourNotch................................................................................................. 52
5.5.19 AstFeaturesArray............................................................................................................ 54
5.5.20 BeamShortening............................................................................................................. 54
5.5.21 Beam............................................................................................................................... 55
5.5.22 StraightBeam.................................................................................................................. 61
5.5.23 UnfoldedBeam................................................................................................................ 62
5.5.24 BentBeam....................................................................................................................... 62
5.5.25 PolyBeam........................................................................................................................ 63
5.5.26 Plate................................................................................................................................ 64
5.5.27 PlateFolded..................................................................................................................... 67
5.5.28 PlateFoldRelation............................................................................................................ 68
5.5.29 PlateFoldArray................................................................................................................ 68
5.5.30 PlateFoldRelationArray................................................................................................... 68
5.5.31 Bolt.................................................................................................................................. 68
5.5.32 Structural......................................................................................................................... 69
5.5.33 StructuralSingle............................................................................................................... 70
5.5.34 StructuralMultiple............................................................................................................ 70
5.5.35 StructuralBox................................................................................................................... 70
5.5.36 StructuralSingleSimpleFrame..........................................................................................71
5.5.37 StructuralSingle3GFrameSymm......................................................................................71
5.5.38 StructuralSingleSlopeFrame...........................................................................................71
5.5.39 StructuralMultipleSimpleFrame.......................................................................................71
5.5.40 StructuralMultipleTowerFrame......................................................................................... 71
5.5.41 Weld................................................................................................................................ 71
5.5.42 StudShear....................................................................................................................... 72
5.5.43 Hole................................................................................................................................. 72
5.5.44 SpecialPart...................................................................................................................... 73
5.5.45 PositionMarkCreator....................................................................................................... 74
5.5.46 PositionMarkFactory....................................................................................................... 74
5.5.47 AstCommand.................................................................................................................. 74
5.5.48 BoltHoleDefinition............................................................................................................ 75
5.5.49 AstUI............................................................................................................................... 75
5
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.50 RulePage........................................................................................................................ 82
5.5.51 RulePageArray................................................................................................................ 82
5.5.52 PropertySheetData.......................................................................................................... 82
5.5.53 HRLJoint......................................................................................................................... 82
5.5.54 Joint................................................................................................................................. 83
5.5.55 Rule................................................................................................................................. 87
5.5.56 Filer................................................................................................................................. 88
5.5.57 DbCursor......................................................................................................................... 88
5.5.58 Role................................................................................................................................. 89
5.5.59 AstObjectsArr.................................................................................................................. 90
5.5.60 ClassFilter....................................................................................................................... 90
5.5.61 AstColor.......................................................................................................................... 90
5.5.62 ExternalMethod............................................................................................................... 91
5.5.63 JointTransfer................................................................................................................... 91
5.5.64 AstCreator....................................................................................................................... 91
.CHAPTER 6 APPENDIX – COMMON DATA AND TYPES.................................................................93
6
1 Chapter 1
Introduction
1.1 Joints and Commands
In Advance Steel, there are two methods to create your own modeling customizations, connections
(referred to as joints) or parametric constructions (referred to as commands), using a programming
language which can implement COM.
This document describes the available Advance Steel COM objects and their usable properties and
methods for joint or command implementation.
2.1.1 Rule
A Rule is a coclass which implements the IRule interface defined by the AstSTEELAUTOMATIONLib
library. The Rule must be implemented in an inprocess server.
2.2 Architecture
Advance Steel creates and modifies joints by using rules. The IRule interface defines several
methods/properties, each being responsible for a certain task.
The Joint provides the link of IRule with the underlying Joint object of Advance Steel. The Joint object
is set by Advance Steel before calling any method of the Rule.
The Query method describes the (input) parameters of the joint. Its implementation should ask for the
user for input with the help of IAstUI and add the necessary entities to InputObjects of the Joint.
Note: If the joint is called with "AstM4CommStructAsJointVB box RuleName" the InputObjects
array contains an element (the structural box) of type IStructuralBox in the beginning of the
Query Method. You can take the box parameter from the InputObjects array and use it or
modify it.
The CreateObjects method describes the steps of the construction. Its implementation should create
Advance Steel objects and add them to the CreatedObjects of the Joint.
Persistency for the Rule parameters is maintained with the use of IAstFiler.
Rules can be written by anybody. The Advance Steel framework is able to execute them at runtime.
Thus, several services are provided - creation, list, modification, explode, deletion of a joint object:
A joint object is created along with its driven objects. A dialog box appears displaying all the
parameters which apply to that joint category.
AutoCAD’s list command lists the joint type (and parameters in later versions).
Editing a joint object leads to the appropriate dialog box.
Exploding an object means deleting the ‘logical joint unit’ while maintaining the driven objects.
These objects will live explicitly then and will not know anything about the joint anymore.
Deleting an object means deleting the logical unit and the driven objects as well. This includes
features at driving objects, e.g. beam notches, etc.
2.2.1 Libraries
Advance Steel provides several libraries that are intended to be used when implementing a Rule.
AstSteelAutomation library – provide access to all Advance Steel dwg objects.
DSCGeomCom library – Geometry library, useful for geometric calculation (vectors, coordinates,
points, parametric curves)
DSCProfilesAccesCom library – Provides access to the profiles defined used by Advance Steel.
DSCUtilFacetCom library - Provides access to the geometric body of an Advance Steel object.
DSCOdbcCom library - Provides access to data used by Advance Steel and stored in external
databases.
AstControls library – Provides several controls intended to be used for the GUI of the joints.
ADVANCE STEEL AS COM API REFERENCE GUIDE
Mainly this library has regular controls but uses database prompts (language dependent) instead of
hardcoded prompts. Also this library has a Bitmap control that uses bitmaps stored in AstorBitmaps or
in dlls.
2.2.3 Roles
Whenever you need to create an Advance Steel object you should define a new IRole object. Using
Role objects you can customize group of objects to have similar properties. See the Role object.
11
ADVANCE STEEL AS COM API REFERENCE GUIDE
2.2.11 GetTableName
Tabular parameter template
12
ADVANCE STEEL AS COM API REFERENCE GUIDE
Helpful stuff
Joint developer should be aware that he is only using interfaces to objects and not objects. Whenever
he is in need to create an AS object he should use the Rule object.
Also, it should be known that Visual Basic is not very helpful with its Set method. Use it, but use it
carefully and keep in mind that you SET interfaces to be equal. You should also know that there can
be two interfaces pointing to the same object. By changing one object using an interface you will also
find out that the object beneath the other interface is changed too. This can happen because of
interfaces pointing to the same AS object. In order to avoid this we have exposed functions for
geometry interfaces that “copy” an object to another one. Use these functions instead of using Visual
Basic Set.
13
3 Chapter 3
Commands
A command is a coclass which implements the IExternalMethod interface defined by the
AstSTEELAUTOMATIONLib library, into an inprocess server.
The same recommendations and general descriptions as for the joint implementation apply.
The major difference is that unlike the joint, the command is a "once-only" logic type, being unable to
update already created objects.
You must implement the IExternalMethod interface Run method, where you can display some dialog
boxes to define parameters for this command execution and/or change their default values, select dwg
objects if required, and create objects.
4 Chapter 4
Developing a joint
The development process consists of the following.
4.1.1 Attributes
The first essential question to answer is: What are the attributes of the joint?
It must be possible to calculate / to develop the joint out of these attributes.
The attributes include the elements which
exist before the joint comes into being,
deliver data necessary to calculate the joint (e.g., height of a beam) OR
will get modified by the joint (i.e., by a feature).
Elements connected by a joint which are not attributes of this joint may exist!
Attributes define joint categories. You may find that the joint of interest could get calculated in different ways.
For example, a base plate could get calculated based on the column cross section extents OR based
on the (explicitly given) attributes length and width.
Thus, several categories may get developed.
Keep in mind, that the user will be able to modify the joint by modifying the joint attributes, including the
‘element attributes’. The user will not be able to modify the joint any other way (except by exploding it).
There might be several joint types with the same attributes. These types share a category.
Analyze the joint substructures which appear in other joints. Isolate general design steps which might
be of interest for further joint types.
4.1.2 Objects
Identify the objects to create in a joint. This includes feature objects.
Are there any connections to create?
Which (Advance Steel) attributes of these objects are fixed, which ones are to be calculated, which
ones are free (i.e. can get changed independently on the joint creation rule)?
4.2 Coding
A Rule can be developed in any language that supports COM. The following is a description of how to
create a joint using “Microsoft Visual Basic 6.0”.
Start Visual Basic and choose as a working project “ActiveX dll”.
From menu Project choose References and add the following references to the project:
AstSteelAutomation library
DSCGeomCom library
DSCProfilesAccesCom library
DSCUtilFacetCom library
DSCOdbcCom library
AstControls library
ADVANCE STEEL AS COM API REFERENCE GUIDE
Each of these libraries has a well-defined role in the joint development process and will be described
in the following brief descriptions. Also, for more information there will be a context sensitive help
(available on F1) that will describe in detail each function from each library.
These libraries are described as follows:
AstSteelAutomation handles all the “core” Advance Steel functionalities. It exposes interfaces to
objects that can be created with Advance Steel and also handles joint, GUI and other
functionalities.
DSCGeomCom handles basic geometry classes. This library can be used without Advance Steel.
It exposes interfaces like point, vector, plane, etc.
DSCProfilesAccesCom is used to handle ProfType objects (beam profiles, user defined and
general use profiles).
DSCUtilFacetCom mainly handles the body interface. It provides access to body intersection with
lines and other basic geometry interfaces.
DSCOdbcCom provides useful and easy access to Advance Steel databases. One can get
prompts, defaults or easily access tables through interfaces provided by this library.
AstControls is used mainly for GUI development of joints. Several ActiveX objects have been
provided with this library. For example the joint developer can link one static prompt to an
AstCrtlDb.mdb message through a StaticDbTextControl.
At this stage the project there should be only one class (default named “Class1”). This can be
renamed to fit the joint’s name
You should write the class object in a way that it implements the IRule interface in order to have
access to basic functionalities of a Rule:
Implements IRule
There should also be an IJoint object instantiated in the Declaration section of the class:
19
ADVANCE STEEL AS COM API REFERENCE GUIDE
Query is the function that is passed only once when the joint is run the first time. Its role is to ask the
user for input objects and set defaults.
In this function it is mandatory to create, use and return an InputObjects array, as follows:
Dim inputObjects As IAstObjectsArr ‘ Declare the inputObjects
Set inputObjects = curJoint.CreateObjectsArray ‘ create it using the joint object.
inputObjects.Add inputBeam
‘ add all the objects selected by the user (input objects)
curJoint.inputObjects = inputObjects
‘ set the inputObjects property of the joint object to fit the array created.
CreateObjects contains the joint functionality. It uses the global variables declared in the declaration
section and does the main work.
In this function it also mandatory to create, use and return a CreatedObjects array, as follows:
Dim crObjs As AstObjectsArr ‘ Declare the Created objects
Set crObjs = curJoint.CreateObjectsArray ‘ create it using the joint object.
crObjs.Add createdBeam ‘ add all the objects created inside the joint
curJoint.CreatedObjects = crObjs
‘ return the created array through the CreatedObjects property of the joint.
Please create objects in this method at first call of this method, do not insert tests that will allow
objects creation only at a second execution of this method (e.g. do not create the joint objects only
after the GetUserPages method is executed).
In some cases (like "AstM4TransferCons") you will not have a second chance to create objects...
(Because the dialog box will not be displayed).
The normal behavior when creating a new joint is to create objects in the "CreateObjects()" method
and show the property pages. Remember - when you show property pages you should not force the
update of the joint.
For the correct functionality of a joint when a problem has appeared and the box should be red, the
joint should implement the CreateObjects method as follows:
In Visual C++:
STDMETHODIMP ....::CreateObjects()
{
if(!m_pCurJoint)
return E_FAIL;
HRESULT hr = E_FAIL;
HRESULT ruleCreateObjectsMethodStatus = S_OK;
IAstObjectsArrPtr spCreatedObjects;
hr = m_pCurJoint->CreateObjectsArray(&spCreatedObjects);
try
{
......... creation stuff ...........................
}
catch(_com_error &e)
{
hr = e.Error();
ruleCreateObjectsMethodStatus = hr;
20
ADVANCE STEEL AS COM API REFERENCE GUIDE
}
catch(...)
{
hr = E_FAIL;
ruleCreateObjectsMethodStatus = hr;
}
hr = m_pCurJoint->put_CreationStatus(finishedCorrectly);
hr = m_pCurJoint->put_CreatedObjects(spCreatedObjects);
return ruleCreateObjectsMethodStatus;
}
In Visual Basic:
Try
'creation stuff
Catch ex As Exception
bJointStatus = False 'something wrong happened
End Try
m_ThisJoint.CreationStatus = bJointStatus
m_ThisJoint.CreatedObjects = JointCreatedObjects
End Sub
GetUserPages provides the link between the ActiveX class object created and forms created for the GUI.
You should keep the form objects inside the created Joint class as follows:
The joint developer is responsible for creating GUI forms for the joint. Each Visual Basic form
represents one property sheet in the Joint Properties tab. After the forms are ready the joint developer
should do the following:
In the section declaration of the joint class declare members of type Forms. For example
Private frameStiffner As New FrStiffner
Where frameStiffner is the name of the object and FrStiffner is the name of the form.
Declare an object for each created form.
21
ADVANCE STEEL AS COM API REFERENCE GUIDE
In the declaration section of each form declare a global variable (global for the current form) of type
class1 (name of the ActiveX class).
Public curRule as Class1 ‘ in the Declaration section
This variable should provide the link between the form and the ActiveX class object.
In the GetUserPages function write the following instruction for each form:
‘ Now create the link between the curRule of the Form and this ActiveX object
Set frm.curRule = Me
Load frm ‘ Load the form
pag1.hWnd = frm.hWnd
‘Call for an interface function that sets the form to be one of the property pages of the joint
Similar to the above code the joint developer can create several pages for a joint.
In the end there should be a call for:
pagesRet.Clear ‘ Clear the IRulePageArray
‘ The joint developer should be aware that the output parameter of the GetUserPages is a
RulePageArray object. It is assumed above that the name of this object is pagesRet.
pagesRet.Add pag1 ‘ Add one by one the property pages
pagesRet.Add pag2
pagesRet.Add pag3
pagesRet.Add pag4
The parameter structure pPropSheetData As AstSTEELAUTOMATIONLib.IPropertySheetData should
contain the main prompt of the sheets, the bitmap index for the first property page and the property
pages size option.
pPropSheetData.SheetPrompt = 71005 ' sheet prompt
pPropSheetData.ResizeOption = kBig ' (available kBig and kStandard)
pPropSheetData.FirstPageBitmapIndex = 23002 ' first page bitmap index
22
ADVANCE STEEL AS COM API REFERENCE GUIDE
The next two functions set and get the joint and they should contain:
Joint [Property Get]
Set IRule_Joint = curJoint ‘ where curJoint is the name of the Joint declared globally
Joint [Property Let]
Set curJoint = RHS ‘ where curJoint is the name of the Joint declared globally and RHS is the input
parameter of this function.
GetTableName – this function should return the name of the table used by the rule to run.
IRule_GetTableName = "RULE_AngleBracing"
The joint must also implement the IJointInfo interface (contains information about the developer). If
this interface is not implemented the joint will fail.
23
ADVANCE STEEL AS COM API REFERENCE GUIDE
More detailed:
Start with a 2D xOy profile contour obtained directly from the ProfType
Transform with “GetMatSys2Phys2d”. Doing this, we set the profile refAxis as requested by the
user (from the properties dialog box, or programmatically), apply the rod rotation (this is not the
one which the user can set from the dialog box, that one is reflected directly in the getSysCSStart
transformation) and transform with a translation matrix based on the rod offsets (BeamOffsetX
and BeamOffsetY). Note that the offsets are represented by a 2D vector, and are applied to the
profile contour which is still in 2D space
Transform by “getMatSysAsXY2Sys”. This matrix transforms the contour from the xOy plane
with z normal into the yOz plane with x normal – this is the moment when the beam extrusion is
performed.
Transform by “getSysCSStart” which moves the beam to its final WCS position.
Additional notes:
Naming convention: before the “getSysCS” transformation we say the beam is in its local CS,
afterwards we say the beam is in WCS.
All methods retrieving beams CS will return CS having the following property: the x-axis of each
CS is oriented from the end towards the start of the beam (regardless of offsets, rotations, mirror,
etc.).
The “GetMatProf2WCS”, “GetMatProf2WCSMidCS”, “GetMatProf2WCSEndCS” methods will
return the transformations which will transform the 2D contour obtained from ProfType from xOy, in
a 3D position overlapping the physical beam body at start, mid, and end respectively. These
transformations include all the steps described above at point.
The “getSysCSStart”, “getSysCSMid”, “getSysCSEnd” methods will return CS along the beam
system line (this is the transformation corresponding to the last step).
The “getPhysCSStart”, “getPhysCSStartMid”, “getPhysCSStartEnd” methods will return the
transformations which will transform a 2D contour (obtained from ProfType) from the yOz position,
in a 3D position overlapping the physical beam body at start, mid, and end respectively. As you
can see these transformations are not part of the normal beam evolution process, but they may be
useful in a number of situations and they exist also for historical reasons.
The “GetCurrentSys2Phys3dOffset” returns the transformation in WCS between getSysCSStart
and getPhysCSStart. This is the recommended way of getting this “offset”, because it takes
correctly into account all factors (ref axes, rotations, offsets, and mirror).
The first two steps above can be obtained also by only one transformation: GetMatProfToLocal.
So GetMatProf2Local = getMatSysAsXY2Sys * GetMatSys2Phys2d.
24
ADVANCE STEEL AS COM API REFERENCE GUIDE
Mirroring:
Mirroring only affects the last step of the beams evolution.
When a beam is mirrored the results of the “getCS” methods (sys or phys or prof2WCS) will be
left-handed CS. The basic rule is that any CS of the mirrored beam could be calculated by just
mirroring the corresponding CS of the original un-mirrored beam.
Given this, never make the assumption that CS.x.crossproduct(CS.y) == CS.z, where CS is any of
the beam CS obtained with the above explained methods.
25
5 Chapter 5
New API - Objects - methods and properties
5.1 Geometry
These are the basic geometric objects. In any joint that will be developed you will have to use at least
a few of these objects (Point3d, Vector3d, Plane, etc.). Below you will find a description for all of the
objects and the methods and properties which they have, along with some code samples that show
their usage.
5.1.1 Point3d
5.1.2 Point3dArray
5.1.3 Vector3d
29
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.4 Vector3dArray
5.1.5 Line3d
5.1.6 LineSeg3d
LineSeg3d – methods and properties
StartPoint (property) Gets or sets the segment start point.
EndPoint (property) Gets or sets the segment end point.
Length (property – get) Returns the segment length.
Direction (property – get) Returns the segment direction (as Vector3d).
CreateFromPoints ( Point3d firstPoint, Point3d Creates a line segment from the specified points.
secondPoint )
SetFrom (LineSeg3d targetLineSeg) Creates a copy of the targetLineSeg object into
this line segment.
30
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.7 LineSeg3dArray
5.1.8 Curve3d
5.1.9 Arc3d
31
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.10 Ray3d
5.1.11 Plane
32
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.12 Matrix3d
5.1.13 Matrix3dArray
33
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.14 AugPolyline3d
AugPolyline3d – methods and properties
Vertices (property) Gets or sets the vertices of the polyline as an array of
points (Point3dArray).
Validity (property) Gets or sets the polyline validity.
For information about possible values of ePolyValidity,
see the appendix.
VertexInfos (property – get) Gets the polyline’s array of vertex information.
Normal (property) Gets or sets the polyline’s normal.
VertexAt (long nIndex) (property) Gets or sets the vertex at the specified index.
VertexInfoAt (long nIndex) (property) Gets or sets the vertex information at the specified index.
ApproxVertices (property – get) Gets the approximate vertices of the polyline.
Perimeter (property – get) Gets the polyline’s perimeter.
ClosestPointTo(Point3d ptIn) (property – get) Returns the closest point on this polyline to the input
point ptIn.
TransformBy ( Matrix3d matr ) Applies the transformation specified by the matrix to
this polyline.
Project ( Plane targetPlane, Vector3d projDir ) Projects the polyline on the specified plane along the
specified projection direction.
orthoProject ( Plane targetPlane ) Orthogonal projection on the specified plane.
AppendVertex ( Point3d pointToAdd ) Adds the specified point to the polyline vertices.
CreateFromVertices (Point3dArray Creates a polyline described by its vertices and
vertexArr, VertexInfoArray vertexInfoArr) vertex information. After creation the Reinitialize()
method should be called, in order to ensure a valid
polyline.
AppendNewVertex (Point3d newVertex, Appends a new vertex to the polyline. If
VertexInfo newVertexInfo, Boolean bCheckValidy is set to True, then it also reinitializes
bCheckValidity) the polyline.
Expand (double dGap) Expands the polyline with the specified gap.
Reinitialize () Computes the polyline’s validity and normal and
eliminates bad vertices (which determine collinear or
parallel edges) and bad edges (zero-length lines or
arcs).
Reverse () Reverses the order of vertices and vertex information
in the polyline and reinitializes the polyline.
CreatePolygon () Creates and returns a polygon created from this
polyline.
DistanceTo (Point3d ptTo) Returns the closest distance from the specified
point to this polyline.
SetNewDeviation (double dNewDev) Sets a new precision for working with the vertex
information of this polyline.
Clear ( ) Removes all vertices from the polyline.
SetFrom (AugPolyline3d targetPoly) Copies the targetPoly to this polyline.
AppendVertices (Point3dArray newVertices) Appends an array of vertices to the polyline’s contour.
34
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.15 AugPolylinesArray
AugPolylinesArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the polyline at the specified index in the
array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( AugPolyline3d pVal) Appends a new polyline in the array.
Clear ( ) Deletes all elements from the array.
5.1.16 AugPolygon3d
AugPolygon3d – methods and properties
Vertices (property) Gets or sets the vertices of the polygon as an
array of points (Point3dArray).
VertexInfos (property – get) Gets the polygon’s array of vertex information.
ApproxVertices (property – get) Gets the approximate vertices of the polygon.
Validity (property – get) Gets the validity of the polygon.
For information about possible values of
ePolyValidity, see the appendix.
Area (property – get) Gets the polygon’s area.
SignedArea (property – get) Gets the polygon’s signed area (a vector whose
direction and length represent the polygon’s
normal and the polygon’s area).
Perimeter (property – get) Gets the polygon’s perimeter.
Normal (property – get) Gets the polygon’s normal vector.
Extents (property – get) Gets the geometrical extents of the polygon.
TransformBy ( Matrix3d matr ) Applies the transformation specified by the matrix
to this polygon.
Project ( Plane targetPlane, Vector3d projDir ) Projects the polygon on the specified plane along
the given projection direction.
orthoProject ( Plane targetPlane ) Orthogonal projection on the specified plane.
AppendVertex ( Point3d pointToAdd ) Adds the specified point to the polygon vertices.
Clear ( ) Removes all vertices from the polygon.
CreateFromVertices (Point3dArray vertexArr, Creates a polygon described by its vertices and
VertexInfoArray vertexInfoArr) vertex information.
Reinitialize (Boolean bChangeVertexAllowed) Computes the polygon’s validity and normal. If
bChangeVertexAllowed is set to True, it also
eliminates bad vertices (which determine collinear
or parallel edges) and bad edges (zero-length
lines or arcs).
AppendNewVertex (Point3d newVertex, Appends a new vertex to the polygon. If
VertexInfo newVertexInfo, Boolean bCheckValidy is set to True, then it also
bCheckValidity) reinitializes the polygon.
AddPolygon (AugPolygon3d polyToAdd) Adds this polygon with polyToAdd polygon.
AddPolygons (AugPolygonsArray polysTo Adds this polygon with polysToAdd polygons.
35
ADVANCE STEEL AS COM API REFERENCE GUIDE
Expand (double dGap) Expands the polygon with the specified gap.
IsConcave() Determines whether the polygon is concave.
Returns True or False.
SeparateByPolyline (AugPolyline3d polyline, Splits the polygon into more polygons by the
double dGap) given polyline with the specified gap. Returns an
array of the polygons resulting after the split.
SeparateByPolylines (AugPolylinesArray Splits the polygon into more polygons by the
polylines, double dGap) given polylines with the specified gap. Returns an
array of the polygons resulting after the split.
intersectWithOtherPolygon (AugPolygon3d Returns an array of 3D points representing the
otherPoly) intersections between this polygon and the
otherPoly polygon.
IsPointInside (Point3d ptToCheck, Boolean Checks if the specified point is inside this polygon
bCountIfOnContour, double dPrecision) with the given precision. If bCountIfOnContour is
set to True, then points on the polygon’s contour
are considered to be inside it. Returns True or
False.
IsPolygonInside (AugPolygon3d polyToCheck, Checks if polyToCheck is inside this polygon,
double dPrecision) with the specified precision. Returns True or
False.
SetNewDeviation (double dNewDev) Sets a new precision for working with the vertex
information of this polygon.
SetFrom (AugPolygon3d otherPoly) Copies otherPoly to this polygon.
AppendVertices (Point3dArray newVertices) Appends an array of vertices to the polygon’s
contour.
Subtract (AugPolygon3d polyToSubtract, Subtracts the specified polygon from this polygon
double dGap) using the given gap. Returns an array containing
the resulting polygons after splitting.
GetGravityCenter (Double area) Returns the center of gravity point for the area.
GetMomentsOfInertia () Returns the moments of inertia and the center of
gravity point for the polygon.
Intersect (AugPolygon3d otherPoly) Returns a polygon representing the intersections
between this polygon and the otherPoly polygon.
Reverse ( ) Reverses the polygon such that the normal is in
the opposite direction.
5.1.17 AugPolygonsArray
AugPolygonsArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the AugPolygon3d at the specified index
in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( AugPolygon3d polygonToAdd ) Appends a new AugPolygon3d in the array.
Clear ( ) Deletes all elements from the array.
36
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.18 AugPolygonsArrayArray
AugPolygonsArrayArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the AugPolygon3dArray at the specified
index in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( AugPolygon3d polygonToAdd ) Appends a new AugPolygon3dArray in the array.
Clear ( ) Deletes all elements from the array.
5.1.19 CS3d
37
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.1.20 CS3dArray
CS3dArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the coordinate system at the specified
index in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( CS3d pVal ) Appends a new coordinate system in the array.
Clear ( ) Deletes all elements from the array.
5.1.21 Extents
Extents – methods and properties
MinPoint (property – get) Returns the minimum point.
MaxPoint (property – get) Returns the maximum point.
ExtendByPoint ( Point3d inPoint ) Enlarges the extents by the given point.
ExtendByPoints ( Point3dArray inPoints ) Enlarges the extents by the given points.
Contains ( Point3d inPoint ) Returns True if the extents contain the given
point, otherwise it returns False.
IsInsideOrIntersecting (Extents extOther) Returns True if extOther is inside or intersecting
the extents, otherwise it returns False.
SetFrom (Extents targetExt) Copies targetExt to this Extents.
5.1.22 PlaneArray
PlaneArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the plane at the specified index in the
array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( Plane pVal) Appends a new plane in the array.
Clear ( ) Deletes all elements from the array.
5.1.23 VertexInfo
VertexInfo – methods and properties
Radius (property – get) Returns the vertex information’s radius.
Center (property – get) Returns the vertex information’s center.
Normal (property – get) Returns the vertex information’s normal direction
vector.
Type (property – get) Returns the vertex information’s type.
For information about possible values of
eVertexInfoType, see the appendix.
ErrorAbsoulte (property) Gets or sets the approximation to use for working
with the vertex information.
TransformBy (Matrix3d mat) Transforms the vertex information by the given
matrix.
38
ADVANCE STEEL AS COM API REFERENCE GUIDE
Project (Plane plane, Vector3d direction) Projects the vertex information in the input plane,
using the input direction.
Expand (double dGap) Expands the vertex information with the given
gap.
getApproxVertices (Point3d ptStart, Point3d Returns an array of points representing
ptEnd, long nSamplesPerFullCircle) approximate vertices between the specified start
and end point. The arc is sampled using the
specified number of samples (per full circle).
CreateFromCenterAndNormal (double Creates the vertex information described by the
dRadius, Point3d ptCenter, Vector3d vNormal) specified radius, center and normal.
CreateFromStartEndPointsAndNormal Creates the vertex information described by the
(Point3d ptStart, Point3d ptEnd, Vector3d specified start point, end point, normal, bulge
vNormal, double dBulge, double dEps) value and approximation.
IsEqualTo (VertexInfo other) Determines if this vertex information and the
“other” vertex information are equal. Returns
True or False.
SetFrom (VertexInfo targetNfo) Copies targetNfo to this vertex information.
5.1.24 VertexInfoArray
VertexInfoArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the vertex information at the specified
index in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( VertexInfo pVal ) Appends a new VertexInformation in the array.
Clear ( ) Deletes all elements from the array.
5.1.25 GeomUtils
GeonUtils – methods and properties
CalculateBalancePoint (AstObjectsArr pArr) Calculate the center of gravity for a set of given
objects.
5.2.1 ProfType
ProfType – methods and properties
39
ADVANCE STEEL AS COM API REFERENCE GUIDE
40
ADVANCE STEEL AS COM API REFERENCE GUIDE
41
ADVANCE STEEL AS COM API REFERENCE GUIDE
getVertexData ( eProfStiffenerType stype, int Returns the vertex feature parameter of the v-th
n, int v, eProfVertexType& vtype, double& vertex of the contour of the n-th possible stiffener.
val1, double& val2 )
Returns an integer.
For information about possible values of
eProfVertexType, see the appendix.
getAdjacentStiffener ( int n ) Returns the number of the adjacent stiffener for the
n-th stiffener.
definedAsDSTV ( ) Returns an integer.
getGravityUsedForWeight ( ) Returns the gravity.
setMirroredInX ( int mirroredInX ) Sets the profile to be mirrored
existsInDatabase ( ) Returns an integer indicating whether the ProfType
exists in the database (AstorProfiles).
getRadius ( int contourIndex, double& radius ) Returns the radius of the contour specified by the
contourIndex.
resetCache ( ) Clears profile cache
isUnwindable ( ) Returns an integer indicating whether the profile is
unwindable.
getUnwind ( ) Returns an integer.
getDimensionPoint ( int bExact, Returns an array with the dimension points and an
Point3dArray& dimensionPoints ) integer.
getSnaps ( eProfSnapType snapType, Returns an array with the s.
Point3dArray& points )
getMat2NCCoordSys ( ) Returns a Matrix3d object representing the
transformation matrix from the local beam’s
coordinate system to the NC coordinate system.
getOuterAugPolygons (Boolean Returns an AugPolygonsArray object
bExactSection, Boolean representing the outer contours of a profile
bUseFilletsOnConcavVertices, Boolean
bUseFilletsOnConvexVertices, double
dfDeviation)
getCompInnerAugPolygons (Boolean Returns an AugPolygonsArrayArray object
bExactSection, Boolean representing the outer contours of a compound
bUseFilletsOnConcavVertices, Boolean profile. Every item in the main array contains the
bUseFilletsOnConvexVertices, double item inner contours of its corresponding profile in
dfDeviation) the compound profile.
getKDistance ( ) Returns a double representing the k-distance from
the profile database table; for the moment this is
supported only for I and U profiles; if the profile
does not support k-distance or if the value is less
than 0.001, it returns -1.
5.2.2 ProfSectVal
ProfSectVal – methods and properties
A (property) Gets or sets the section area.
Iz (property) Gets or sets the z moment of inertia .
Iy (property) Gets or sets the y moment of inertia
42
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.2.3 ProfGapCollection
ProfGapCollection – methods and properties
createGapGeneral ( double general ) Creates a gap.
createGapFull ( double general, double face, Creates a gap.
double fl_Out, double fl_In, double web )
createGapGeneralFace ( double general, Creates a gap.
double face )
limitTo ( double fl_In, double web ) Returns an integer.
getGap ( eProfGapMode mode ) Returns a double.
getMode ( ) Returns an eProfGapMode data type.
For information about possible values of
eProfGapMode, see the appendix.
5.3.1 AstModeler
This object can be obtained from a beam or a plate and represents the body of the base object.
43
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.4.1 OdbcUtils
OdbcUtils – methods and properties
GetUPSString ( long key ) Returns a string read from the ErrorMessages
table, at key (UPS / PRP / key) in the AstCrtlDb
database.
GetGUIString ( long key ) Returns a string read from the ErrorMessages
table, at key (GUI / PRP / key) in AstCrtlDb in the
database.
GetDefaultInt ( int defaultClass, string Returns the default’s value (int) in the
defaultName ) AstorSettings database.
GetDefaultDouble ( int defaultClass, string Returns the default’s value (double) in the
defaultName ) AstorSettings database.
GetDefaultString ( int defaultClass, string Returns the default’s value (string) in the
defaultName ) AstorSettings database.
44
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.4.2 OdbcTable
OdbcTable – methods and properties
SetCurrent ( string tableName ) Sets the table name in which searches will be
performed.
SetCurrentKey ( VARIANT key ) Sets the table key.
GetCurrentKey ( ) Returns the table key.
AddSearchCriteria ( long columnNumber, Adds a search criterion using the column number
VARIANT columnValue ) and column value.
Multiple search criteria can be defined for a table.
Search ( ) Returns the key of the first record found that
matches all search criteria that were defined for
this table.
After the search finishes, all criteria defined for the
table are deleted.
Sets the current record to the one with the found
key.
GetAt ( long columnNumber ) Returns the value found in the current record in
the specified column.
SetAt ( long columnNumber, VARIANT value ) Set the value in the specified column for the
current record.
AppendNewRecord ( ) Creates a new record and returns the key of the
newly created record.
5.5 SteelAutomation
The following objects are part of the Advance Steel Kernel and cannot be instantiated by any
programming language through direct calls, like New (in VB) or CreateInstance (in C++).
As a consequence:
they are either created by Advance Steel Kernel for joint developers and passed in as “already
created objects”
some samples for this are IRulePageArray, IFiler, IPropertySheetData
they are created by the joint developer using calls to the IJoint interface
for instance, if you need to create a beam or a plate you should call
ObjectOfTypeJoint.CreateBeam or
ObjectOfTypeJoint.CreatePlate
5.5.1 AstObject
AstObject – methods and properties
Id (property) Gets or sets the object ID.
45
ADVANCE STEEL AS COM API REFERENCE GUIDE
Type (property – get) Gets the object class type, as an eClassType data
type.
For information about possible values of
eClassType, see the appendix.
RoleObject (property) Gets or sets the object’s role, as a Role object.
Color(property) Gets or sets the object’s color.
5.5.2 EqualPartObject
EqualPartObject – methods and properties
DrawingNumber (property) Gets or sets the drawing number (as string).
Role (property) Gets or sets the role name.
IsMainPart (property) Gets or sets if the object is a main part (True or
false).
IsAttachedPart (property – get) Gets if the object is an attached part (True or
false).
MainPartPrefix (property) Gets or sets the main part prefix (String).
SinglePartPrefix (property) Gets or sets the single part prefix (String)
MainPartNumber (property) Gets or sets the main part number (String)
SinglePartNumber (property) Gets or sets the single part number (String)
Standalone (property) True or false.
Material (property) Gets or sets the object's material (String)
Coating (property) Gets or sets the object's coating (String)
Denotation (property) Gets or sets the object's denotation (String)
Assembly (property) Gets or sets the object's assembly (String)
Note (property) Gets or sets the object's note (String)
ItemNumber (property) Gets or sets the object's item number (String)
SinglePartDetailStyle (property) Gets or sets the object's single part detail style
(Integer)
MainPartDetailStyle (property) Gets or sets the object's main part detail style
(Integer)
Name (property) Gets or sets the object's name (String)
46
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.3 AstFeatObject
AstFeatObject – methods and properties
UseGap (property) Gets or sets the “use of additional gap” property –
whether to use or not a gap when subtracting
features from objects bodies.
GapAddition (property – get) Gets the gap addition used for features modeling.
5.5.4 PlateFeat
PlateFeat – methods and properties
Plate (property – get) Gets the owner plate of the feature.
getAstModeler (eBodyContext context) Returns an AstModeler object representing the
feature’s body in the given body context.
For information about possible values of
eBodyContext, see the appendix.
5.5.5 PlateFeatVertex
PlateFeatVertex – methods and properties
VertexIndex (property) Gets or sets the feature’s vertex index on the
owner plate’s contour.
getContextPolygon () Returns an AugPolygon3d object representing
the feature’s contour polygon.
5.5.6 PlateFeatEdge
PlateFeatVertex – methods and properties
EdgeIndex (property) Gets or sets the feature’s edge index on the
owner plate’s contour.
getContextPolygon () Returns an AugPolygon3d object representing
the feature’s contour polygon.
5.5.7 PlateFeatContour
PlateFeatVertex – methods and properties
Length (property – get) Gets the length of the feature (double).
47
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.8 Chamfer
Chamfer – methods and properties
Length (property – get) Gets the chamfer’s length (double).
Width (property – get) Gets the chamfer’s width (double).
LengthIncrement (property) Gets or sets the chamfer’s length increment
(double).
setLength (double length, Boolean Sets the chamfer’s length, considering the
bIgnoreRaster) bIgnoreRaster setting.
48
ADVANCE STEEL AS COM API REFERENCE GUIDE
setWidth (double width, Boolean bIgnoreRaster) Sets the chamfer’s width, considering the
bIgnoreRaster setting.
getBaseContourPolygon (double zpos) Gets the chamfer’s contour polygon at the
specified z position. Returns a Point3dArray
object.
setBaseContourVertex (int indexGrip, Point3d Sets the specified vertex on the chamfer’s
newVertex) polygon contour.
5.5.9 Fillet
Fillet – methods and properties
Radius (property – get) Gets the fillet’s radius (double).
RadiusIncrement (property) Gets or sets the fillet’s radius increment (double).
FilletType (property) Gets or sets the fillet’s type (eFilletTypes).
For information about possible values of
eFilletTypes, see the appendix.
setRadius (double radius, Boolean Sets the fillet’s radius, considering the
bIgnoreRaster) bIgnoreRaster setting.
getBaseContourPolygon (double zpos) Gets the chamfer’s contour polygon at the
specified z position. Returns a Point3dArray
object.
setBaseContourVertex (int indexGrip, Point3d Sets the specified vertex on the chamfer’s
newVertex) polygon contour.
5.5.10 PlateContourNotch
PlateContourNotch – methods and properties
ContourType (property) Gets or sets the contour notch’s contour type
(eContourTypes).
For information about possible values of
eFilletTypes, see the appendix.
Normal (property – get) Gets the normal at the contour notch’s plane
(Vector3d).
ContourPolygon (property – get) Gets the contour notch’s contour polygon.
Gap (property) Gets or sets the contour notch’s gap (double).
Length (property) Gets or sets the contour notch’s length (double).
Width (property) Gets or sets the contour notch’s width (double).
Offset (property) Gets or sets the contour notch’s width (Vector3d
– a 2D vector actually – z component always 0
equal).
LengthIncrement (property) Gets or sets the contour notch’s length increment
(double).
Radius (property) Gets or sets the contour notch’s radius (double).
RadiusIncrement (property) Gets or sets the contour notch’s radius increment
(double).
49
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.11 PlateWeldingPreparation
PlateWeldingPreparation – methods and properties
XDist (property) Gets or sets the X size of the welding preparation
(double).
YDist (property – get) Gets the Y size of the welding preparation
(double).
PlateSide (property) Gets or sets the side of plate on which the
welding preparation lies (integer).
setYDist (double yDist, Boolean bAllowOverlap) Sets the Y size of the welding preparation
allowing for overlapping with other existing
preparations on the same edge.
getLocalCS () Returns a CS3d object representing the local
coordinate system of the welding preparation.
isOnPlate () Returns True or False, depending on whether the
welding preparation is placed on a plate edge or
on another feature.
5.5.12 PlateWeldingBevel
PlateWeldingBevel – methods and properties
Same as PlateWeldingPreparation
5.5.13 PlateWeldingFillet
PlateWeldingFillet – methods and properties
Radius (property – get) Gets the radius of the fillet welding preparation
(double).
50
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.14 BeamNotch
BeamNotch – methods and properties
Beam (property – get) Gest the owner beam of the notch (Beam object).
RefLength (property) Gets or sets the length of the notch (double).
RefDepth (property) Gets or sets the depth of the notch (double).
End (property) Gets or sets the end of the beam where the notch
lies (eBeamEnd).
For information about possible values of
eBeamEnd, see the appendix.
Side (property) Gets or sets the side of the beam where the notch
lies (eBeamSide).
For information about possible values of
eBeamSide, see the appendix.
CS (property) Gets or sets the coordinate system of the notch
(CS3d).
CornerType (property – get) Gets the notch corner type (eNotchCornerType).
For information about possible values of
eNotchCornerType, see the appendix.
CornerRadius (property – get) Gets the notch corner radius (double)
LengthDefiningPlane (property – get) Gets the plane which defines the notch’s length.
DepthDefiningPlane (property – get) Gets the plane which defines the notch’s depth.
GetVertices ( ) Returns a Point3dArray representing the
vertices of the notch’s contour.
getAstModeler (eBodyContext context) Returns an AstModeler object representing the
notch’s body in the given body context.
For information about possible values of
eBodyContext, see the appendix.
getNumberOfEcs ( ) Returns the number of coordinate systems of the
notch.
getEcs (int nNumber) Returns a CS3d object representing the
coordinate system at the specified index.
SetCorner (eNocthCornerType type, double Sets the notch corner.
dRadius)
For information about possible values of
eNotchCornerType, see the appendix.
51
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.15 BeamNotchStd
BeamNotchStd – methods and properties
Same as BeamNotch
5.5.16 BeamNotchEx
BeamNotchEx – methods and properties
XRotation (property) Gets or sets the X rotation of the notch
(eNotchXRotation).
For information about possible values of
eNotchXRotation, see the appendix.
XAngle (property) Gets or sets the notch’s X angle (double).
ZAngle (property) Gets or sets the notch’s Z angle (double).
AxisAngle (property) Gets or sets the notch’s axis angle (double).
5.5.17 BeamContourNotch
BeamContourNotch – methods and properties
Beam (property – get) Gets the owner beam of the notch (Beam object).
Gap (property) Gets or sets the contour notch’s gap.
End (property) Gets the end of the beam where the contour
notch lies (eBeamEnd).
For information about possible values of
eBeamEnd, see the appendix.
GetVertices ( ) Returns a Point3dArray representing the
vertices of the notch’s contour.
MoveVertex (int nNumber, Vector3d offset) Moves the specified vertex with the specified
offset.
getAstModeler (eBodyContext context) Returns an AstModeler object representing the
contour notch’s body in the given body context.
For information about possible values of
eBodyContext, see the appendix.
getNumberOfEcs ( ) Returns the number of coordinate systems of the
contour notch.
getEcs (int nNumber) Returns a CS3d object representing the
coordinate system at the specified index.
TransformBy (Matrix3d matrix) Transforms the contour notch by the specified
matrix.
5.5.18 BeamMultiContourNotch
BeamNotch – methods and properties
52
ADVANCE STEEL AS COM API REFERENCE GUIDE
Beam (property – get) Gets the owner beam of the multi-contour notch
(Beam object).
ContourType (property) Gets or sets the type of the multi-contour notch
(eContourTypes).
For information about possible values of
eContourTypes, see the appendix.
Normal (property – get) Gets the normal at the multi-contour notch’s plane
(Vector3d).
ContourPolygon (property – get) Gets the contour polygon of the multi-contour
notch’s plane (AugPolygon3d).
Gap (property) Gets or sets the gap of the multi-contour notch
(double).
Length (property) Gets or sets the length of the multi-contour notch
(double).
Width (property) Gets or sets the width of the multi-contour notch
(double).
Offset (property) Gets or sets the offset of the multi-contour notch
(Vector3d – a 2D vector actually – z component
always 0 equal).
LengthIncrement (property) Gets or sets the length increment of the multi-
contour notch(double).
Radius (property) Gets or sets the radius of the multi-contour
notch(double).
RadiusIncrement (property) Gets or sets the radius increment of the multi-
contour notch (double).
End (property) Gets the end of the beam where the multi-contour
notch lies (eBeamEnd).
For information about possible values of
eBeamEnd, see the appendix.
CS (property) Gets or sets the coordinate system of the notch
(CS3d).
GetVertices ( ) Returns a Point3dArray representing the
vertices of the notch’s contour.
NumVertexInfo (property – get) Gets the number of vertices on the multi-contour
notch’s contour polygon.
VertexInfoAt (int nIndex) (property) Gets or sets the vertex information on the multi-
contour notch’s contour at the specified index
(double).
setContourAndCS (AugPolygon3d contour, Sets the contour and the coordinate system of the
CS3d cs) multi-contour notch.
MoveVertex (int nIndex, Vector3d offset) Moves the contour notch’s contour vertex at the
specified index with the specified offset.
MoveEdge (int nIndex, Vector3d offset) Moves the contour notch’s contour edge at the
specified index with the specified offset.
53
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.19 AstFeaturesArray
AstFeaturesArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the AstFeatObject at the specified index
in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( AstFeatObject feature ) Appends a new AstFeatObject in the array.
5.5.20 BeamShortening
BeamShortening – methods and properties
BeamEnd (property) Gets or sets the beam end where the shortening
is created (eBeamEnd).
For information about possible values of
eBeamEnd, see the appendix.
RefLength (property) Same as InsLength.
InsLength (property) Gets or sets the distance from the shortening
plane to the beam end (double).
AngleY (property) Gets or sets rotation angle Y (rotation angle of the
cutting plane around the main axes) (double).
Y is the angle between the beam x-axis and the
projection of the cutting plane normal vector onto
the beam’s xz plane.
AngleZ (property) Gets or sets rotation angle Z (rotation angle of the
cutting plane around the main axes) (double).
Z is the angle between the beam x-axis and the
projection of the cutting plane normal vector onto
the beam’s xy plane.
Beam (property – get) Gets the owner beam of the shortening (Beam
object).
Normal (property – get) Gets the normal at the shortening plane.
(Vector3d).
CS (property – get) Gets the coordinate system of the shortening
(CS3d).
54
ADVANCE STEEL AS COM API REFERENCE GUIDE
MoveAlongSystemAxis (Vector3d offset, Moves the shortening along the beam’s system
double lengthIncrement) line, with the specified offset and length
increment.
MoveAlongNormal (Vector3d offset, double Moves the shortening along its normal, with the
lengthIncrement) specified offset and length increment.
getNumberOfEcs ( ) Returns the number of coordinate systems of the
shortening.
getEcs (int nNumber) Returns a CS3d object representing the
coordinate system at the specified index.
5.5.21 Beam
Beam – methods and properties
Length (property – get) Gets the beam length.
StartPoint (property) Gets or sets the beam start point (Point3d).
EndPoint (property) Gets or sets the beam end point (Point3d).
StartLengthOffset (property – get) Gets the beam length offset from the start of the
system line to the physical start of the beam.
EndLengthOffset (property – get) Gets the beam length offset from the end of the
system line to the physical end of the beam.
Weight (property – get) Gets the weight of the beam.
BalancePoint (property – get) Gets the balance point of the beam body
(Point3d).
SinglePartUsedForNumbering (property) Gets or sets whether the beam is considered as a
single part for numbering.
MainPartUsedForNumbering (property) Gets or sets whether the beam is considered as a
main part for numbering.
SinglePartUsedForBOM (property) Gets or sets whether the beam is considered as a
single part for the BOM.
MainPartUsedForBOM (property) Gets or sets whether the beam is considered as a
main part for the BOM.
NumberOfRods (property - get) Gets the number of rods of the beam
SideTag ( Point3d point) (property) Gets or sets the side tag of the beam at the
specified point.
For information about possible values of
eBeamTag, see the appendix.
TaggedSide (eBeamTag tag) (property - get) Gets the end of the beam at the specified side tag
For information about possible values of
eBeamEnd and eBeamTag, see the appendix.
TaggedUpDown ( eBeamTag tag) (property - Gets the side of the beam with the given tag.
get)
For information about possible values of
eBeamTag and eBeamSide, see the appendix.
55
ADVANCE STEEL AS COM API REFERENCE GUIDE
EndAt ( Point3d point) (property - get) Gets the end of the beam closest to the given
point.
For information about possible values of
eBeamEnd, see the appendix.
SideAt ( Point3d point) Gets the side of the beam closest to the given
point.
For information about possible values of
eBeamSide, see the appendix.
RefDistFrom (eBeamSide sideOfBeam) Gets the distance from the current reference axis
(property - get) to the specified side of the beam. It will return a
double value.
For information about possible values of
eBeamSide, see the appendix.
PaintArea (property - get) Gets the paint area of the beam’s profile.
SystemlineLength ( property - get) Gets the length of the system line of the beam
StartInnerAugmentedPolygons (eBodyContext Gets the augmented inner contour polygons of
ctx, Boolean bUseFilletsOnConcaveVertices, the beam.
Boolean bUseFilletsOnConvexVertices) (property
The contours lie in WCS.
- get )
The ctx parameter determines the body context in
which the contours should be analyzed.
For information about possible values of
eBodyContext, see the appendix.
bUseFilletsOnConcaveVertices and
bUseFilletsOnConvexVertices determine
whether to use fillets on vertices of the contours.
The contour is returned as an array of
AugPolygon3d objects.
StartOuterAugmentedPolygons Gets the augmented outer contour polygons of
(eBodyContext ctx, Boolean the beam.
bUseFilletsOnConcaveVertices, Boolean
The contours lie in WCS.
bUseFilletsOnConvexVertices) (property - get )
The ctx parameter determines the body context in
which the contours should be analyzed.
For information about possible values of
eBodyContext, see the appendix.
bUseFilletsOnConcaveVertices and
bUseFilletsOnConvexVertices determine
whether to use fillets on vertices of the contours.
The contour is returned as an array of
AugPolygon3d objects.
NumberOfInnerContours ( property - get) Gets the number of inner contours of the beam.
InnerContourAt (int nNumber) (property - get) Gets the specified inner contour of the beam as
an AugPolygon3d object.
CrossSectionMirrored (property) Gets or sets the mirror state of the cross section
of the beam.
CS (property - get) Gets the beam’s coordinate system at the start of
the system line as a CS3d object.
56
ADVANCE STEEL AS COM API REFERENCE GUIDE
Angle ( property) Gets or sets the beam rotation around its main X-
axis (in radians).
PhysicalCSStart ( property – get) Gets the coordinate system at the physical start of
the beam as a CS3d object.
PhysicalCSEnd ( property – get) Gets the coordinate system at the physical end of
the beam as a CS3d object.
PhysicalCSMid ( property – get) Gets the coordinate system at the physical middle
of the beam as a CS3d object.
PhysicalCSAt (eBeamEnd endOfBeam) Gets the coordinate system at the specified
(property – get) physical end of the beam as a CS3d object.
For information about possible values of
eBeamEnd, see the appendix.
PhysicalCSAtTag ( eBeamTag tag) (property – Gets the coordinate system at the specified
get) physical tag of the beam as a CS3d object.
For information about possible values of
eBeamTag, see the appendix.
RefAxis ( property) Gets or sets the reference axis of the beam.
For information about possible values of
eProfRefAxis, see the appendix.
RefOffset (eProfRefAxis refAxis) (property - get) Gets the offset of the beam’s reference axis. The
Vector3d object returned is a 2D vector actually,
so will always have the z component set to 0.
BeamOffsetX (property) Gets or sets the beam’s X offset.
BeamOffsetY (property) Gets or sets the beam’s Y offset.
getSysCSStart ( ) Returns the CS at the start of the system line of
the beam.
The origin is the start point of the system line, the
axes are orthogonal to the system line.
Shortenings do not affect the result.
getSysCSEnd ( ) Returns the CS at the end of the system line of
the beam.
The origin is the end point of the system line, the
axes are orthogonal to the system line.
Shortenings do not affect the result.
getSysCSMid ( ) Returns the CS at the middle of the system line
of the beam.
The origin is the middle point of the system line,
the axes are orthogonal to the system line.
Shortenings do not affect the result.
getCSAtPoint ( Point3d atPoint ) Returns the coordinate system at the given point
(on the insert line).
getClosestPointToSystemline ( Point3d Returns a point on the system line of the beam,
pickPoint ) closest to the pickPoint.
57
ADVANCE STEEL AS COM API REFERENCE GUIDE
58
ADVANCE STEEL AS COM API REFERENCE GUIDE
59
ADVANCE STEEL AS COM API REFERENCE GUIDE
SetUpDownTag ( Point3d point, eBeamTag tag) Sets a tag at the side of the beam (upper or lower
side) nearest to the given point. The other side
will get the opposite tag.
For information about possible values of
eHoleType see the appendix.
getSysCSAt (eBeamEnd endOfBeam) Returns the CS at the specified end of the
system line of the beam. It will return a CS3d
object.
The origin is the end point of the system line, the
axes are orthogonal to the system line.
For information about possible values of
eBeamEnd see the appendix.
isShorteningOnBeam (Point3d point, Vector3d Checks if a shortening is on the beam, with the
vNormal, double offset) given offset.
The shortening plane is described by a point and
a normal.
Returns True or False.
TransformBy (Matrix3d matrix) Transforms the beam with the given matrix.
getRefAxisWCS (eProfRefAxis refAxis, Returns a point and a vector which define a line in
Point3d& ptWCS, Vector3d& vDir) WCS along the required reference axis of this
beam’s profile.
getCutOuterCS (Boolean bOuter, Beam pBeam, Gets one or two CS describing the cutting outer
CS3d& cs1, CS3d& cs2, eBeamEnd& end1, contour systems against the specified beam and
eBeamEnd& end2, Boolean bOnMinAngleSide) the appropriate beam end(s) of this beam.
The origin and Z-axis of each CS define the
cutting plane. The origins are ordered
parametrically on the cut beam. If only one CS is
found, the second is set to NULL.
If bOuter is true, the function calculates the outer
CS, otherwise it calculates the upper CS.
For information about possible values of
eBeamEnd, see the appendix.
The last parameter specifies whether the CS must
be on the minimum angle side or on the other
side of the beam.
getCutMiterCS (int nType, Beam pBeam, Gets one or two CS describing the miter cuts
CS3d& cs1, CS3d& cs2, eBeamEnd& end1, against the specified beam and the appropriate
eBeamEnd& end2) beam end(s) of this beam.
The origin and Z-axis of each CS define the
cutting plane. The origins are ordered
parametrically on the cut beam. If only one CS is
found, the second is set to NULL.
For information about possible values of
eBeamEnd, see the appendix.
GetCurrentSys2Phys3dOffset (Vector3d& Please see Beam Transformations.
offset)
GetMatSys2Phys2d (Matrix3d& mat) Please see Beam Transformations.
GetMatProf2Local (Matrix3d& mat) Please see Beam Transformations.
60
ADVANCE STEEL AS COM API REFERENCE GUIDE
61
ADVANCE STEEL AS COM API REFERENCE GUIDE
Please see the following on how the “holeCS” for “CreateHolePattern” should be set in order to
correctly drill a hole through a random profile:
The idea is that the origin of the hole should be on the face of the profile from which the hole should
start, and the zAxis of the CS should point outside of the profile. In the above picture for example, if we
decide to drill the hole in the other direction we could move the CS origin on the lower face which is
currently affected by the hole, and we should also reverse the normal.
5.5.22 StraightBeam
StraightBeam – methods and properties
CenterPoint (property - get) Gets the center point of the straight beam as a
Point3d object.
GetOuterCS ( StraightBeam toBeam, Gets a CS describing a cutting outer contour
eBeamEnd& thisBeamEnd ) system against the specified beam and the
appropriate beam end of this beam.
Returns a CS3d object from which the origin and
Z-axis define the cutting plane.
For information about possible values of
eBeamEnd, see the appendix.
GetMiterCS ( StraightBeam toBeam, Gets a CS describing a miter cut against the
eBeamEnd& thisBeamEnd ) specified beam and the appropriate beam end of
this beam.
Returns a CS3d object from which the origin and
Z-axis define the cutting plane.
For information about possible values of
eBeamEnd, see the appendix.
62
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.23 UnfoldedBeam
UnfoldedBeam – methods and properties
PolylineSection (property) Gets or sets the polyline that describes the
unfolded beam section (AugPolyline3d object).
Thickness (property) Gets or sets the unfolded beam thickness.
Portioning (property) Gets or sets the unfolded beam portioning
(double value inside the interval [ 0 , 1 ] ).
NumberOfVertices (property – get) Gets the number of vertices of the polyline of the
unfolded beam’s cross section.
VertexAt (int nIndex) (property) Gets or sets the specified vertex on the polyline of
the unfolded beam’s cross section.
GetRadius ( int vertexIndex ) Returns the radius at the specified vertex of the
polyline that describes the unfolded beam section.
SetRadius ( int vertexIndex, double radius ) Sets the radius at the specified vertex of the
polyline that describes the unfolded beam section.
GetIsClosed ( ) Gets the close/open state of the unfolded beam.
Returns True if the unfolded beam is closed and
False if open.
5.5.24 BentBeam
BentBeam – methods and properties
ParamAtPoint ( Point3d point) (property – get) Gets the parameter value of the specified point.
CSAtParam (double param) (property – get) Returns the coordinate system on the curved
beam’s system line at the given parameter.
Returns a CS3d object.
CSAtPoint ( Point3d point) (property – get) Returns the coordinate system on the curved
beam’s system line at the given point.
Returns a CS3d object.
63
ADVANCE STEEL AS COM API REFERENCE GUIDE
ECSAtPoint (Point3d point) (property – get) Returns the coordinate system on the curved
beam at the specified point.
Returns a CS3d object.
Tangent ( Point3d point) (property – get) Gets the tangent at the given point
Returns a Line3d object.
CurveOffset (Vector3d offsetInCSStart) This method is obsolete. GetCurveOffset()
(property – get) should be called instead.
Deviation (property) Gets or sets the deviation of the curved beam’s
curve.
OffsetCurveRadius (property) Gets or sets the radius of the system line with the
curve’s offset
ArcNormal (property - get) Gets the system line’s arc normal.
ArcCenter (property - get) Gets the system line’s arc center.
SystemlineArc3d (Boolean bInWCS) (property - Gets the system line’s arc.
get)
PhysicalArc3d (eBodyContext ctx) (property - Gets the system line’s physical arc in the given
get) body context.
SetSystemLine ( Point3d startPoint, Point3d Sets the curved beam’s system line. The system
anyPointOnCurve, Point3d endPoint) line is described by the three input points.
GetClosestPointToSystemLine ( Point3d point) Gets the closest point to the input parameter
point on the curved beam’s system line.
Returns a Point3d object.
GetPhysicallyMinMaxPoints (eBodyContext Gets the curved beam’s physical extents in the
ctx, Point3d& physStartPoint, Point3d& given body context.
physEndPoint)
For information about possible values of
eBodyContext, see the appendix.
GetCurveOffset () Gets the curve’s offset in the curved beam’s
plane.
ChangeReferenceSystem (double angle) Gets or sets the beam rotation around its main X-
axis (angle is in degrees).
5.5.25 PolyBeam
PolyBeam – methods and properties
getPolyline (Boolean bInWCS) Returns the defining polyline
5.5.26 Plate
Plate – methods and properties
Width (property) Gets or sets the plate’s width.
Length (property) Gets or sets the plate’s length.
64
ADVANCE STEEL AS COM API REFERENCE GUIDE
65
ADVANCE STEEL AS COM API REFERENCE GUIDE
66
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.27 PlateFolded
PlateFolded – methods and properties
IsUnwindable (property – get) Checks if this folded plate is unwindable or not.
Returns True or False.
67
ADVANCE STEEL AS COM API REFERENCE GUIDE
getAstModelerUnfolded (eBodyContext ctx) Gets the unfolded body of this folded plate.
For information about possible values of
eBodyContext, see the appendix.
SetThickness (double dfThickness) Sets the folded plate’s thickness.
GetMainFold () Gets the ID of the main fold of this folded plate
(long).
SetMainFold (long nNewMainFoldId) Sets a new main fold for the folded plate. The new
main fold is specified by its ID.
GetFold (Point3d ptClosest) Get the ID of the closest folded plate’s fold to the
given point (long) .
GetAllFolds () Gets an array containing all folded plate’s folds
IDs.
AddFeatureTo (long nFoldId, AstFeatObject Adds the given feature on the specified plate fold.
pFeatToAdd)
GetFoldAstModeler (long nFoldId, Gets the body of the specified fold.
eBodyContext ctx)
For information about possible values of
eBodyContext, see the appendix.
GetDriverFold (long nFoldId) Gets the ID of the specified fold’s driver fold .
GetAllDrivenFolds (long nFoldId) Gets the IDs of all folds driven by the specified
fold.
GetNeighbourFolds (long nFoldId) Gets the IDs of the specified fold’s neighbor folds.
GetDriverRelation (long nFoldId) Gets the relation which drives the specified fold.
GetDrivenRelations (long nFoldId) Gets relations driven directly by the specified fold.
GetRelations (long nFoldId) Gets all relations which drive/are driven directly
by the specified fold.
GetAllDrivenRelations (long nFoldId) Gets recursively all relations driven by the
specified fold and by its descendants (driven
folds).
GetAllRelations () Gets all folded plate’s relations.
Connect (PlateFolded otherPlate, Point3d Connects this fold with the specified plate. The
ptOnThisPlate, Point3d ptOnOtherPlate, long connection is done at the closest edge of the
nFoldOnThisId, long nFoldOnOtherId, Role plates to the given points. Returns True or False
resultingRelationRole, PlateFoldRelation& depending if the connection was done
relation) successfully. If the connection was done
successfully the relation parameter will contain
the newly created relation. The relation will have
the specified role.
68
ADVANCE STEEL AS COM API REFERENCE GUIDE
ExtendBy (PlateFold pFold, long nMethod, long This method adds the specified fold along with all
idFoldToConnectTo, Point3d ptOnFoldedPlate, its children to the folded plate. The nMethod
Point3d ptOnFold, string resultingRelationRole, parameter indicates whether the position of the
long& nFoldId, PlateFoldRelation& pRelation, fold is changed in the process; if the value is 0 the
selected edge on pFold (via ptOnFold) is alligned
with the selected edge on the folded plate (via
ptOnFoldedPlate) Otherwise, the plates are
connected along their clossest edges witch are
moved until they touch, if necessary. Returns
True if the connection succeded or False
otherwise. If the connection was done
successfully the relation parameter will contain
the newly created relation. The relation will have
the specified role.
5.5.28 PlateFoldRelation
PlateFoldRelation – methods and properties
FoldedPlate (property – get) Gets the folded plate which owns this relation
DriverFold (property – get) Gets the ID of this relation’s driver fold.
DrivenFold (property – get) Gets the ID of this relation’s driven fold.
Angle (property) Gets or sets the angle of this relation.
Justification (property) Gets or sets the justification of this relation.
Radius (property) Gets or sets the radius of this relation.
CS (property – get) Gets the coordinate system of this relation.
EdgeLength (property – get) Gets the relation’s connection length.
ParentAlignMatrix (property – get) Returns matrix witch aligns child fold to parent
fold
Center (property – get) Gets the center point of this relation.
getBendingInformation (Point3d& ptBend, Returns the bending information of this relation.
Vector3d& vBend, double& dAngle, double&
dRadius)
getAstModeler (eBodyContext ctx) Gets the relation’s body.
For information about possible values of
eBodyContext, see the appendix.
5.5.29 PlateFoldArray
PlateFoldArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the PlateFold at the specified index in
the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( PlateFold pVal ) Appends a new PlateFold in the array.
69
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.30 PlateFoldRelationArray
PlateFoldRelationArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the PlateFoldRelation at the specified
index in the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add (PlateFoldRelation pVal ) Appends a new PlateFoldRelation in the array.
5.5.31 Bolt
Bolt – methods and properties
ScrewLength (property) Gets or sets the bolt length.
ScrewDiameter (property) Gets or sets the bolt diameter.
BindingLength (property) Gets or sets the bolt’s binding length.
BindingLengthAddition (property) Gets or sets the bolt binding length addition.
FinishCalculationAtGap (property) Gets or sets the bolt’s finish calculation at gap.
HoleTolerance (property – get) Gets the bolt hole tolerance.
Norm (property) Gets or sets the bolt standard.
Material (property) Gets or sets the bolt material.
BoltSet (property) Gets or sets the bolt set.
Assembly (property – get) Gets the bolt assembly.
Annotation (property – get) Gets the bolt annotation.
Name (property – get) Gets the bolt name.
Coating (property) Gets or sets the bolt coating.
MidPoints (property - get) Gets the middle points of a bolt pattern.
CS (property) Gets or sets the bolt pattern’s coordinate system.
Normal (property - get) Gets the normal of the bolt pattern.
BoltNormal (property - get) Gets the normal of a bolt pattern’s bolts.
Inverted (property) Gets or sets the inverted property of a bolt
pattern’s bolts (bolts are inverted if the pattern
and bolt normal are opposed).
NumberOfScrews (property - get) Gets the number of bolts in a bolt pattern.
SetHoleTolerance ( double val, Boolean Sets the hole tolerance.
forwardToAllHoles )
Connect ( AstObjectsArr objectsToConnect, Connects all the objects in the array with this bolt.
eAssembleLocation location )
The holes are now created in the connected
objects.
For information about possible values of
eAssembleLocation, see the appendix.
70
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.32 Structural
Structural – methods and properties
Normal (property – get) Gets the normal of the structural element.
GetNumberedCS ( int index ) Returns a CS3d object – the specified coordinate
system of the structural element.
GetNumberedVertex ( int index ) Returns a Point3d object – the specified vertex of
the structural element.
TransformBy (Matrix3d mat) Transforms the structural element with the given
matrix.
5.5.33 StructuralSingle
StructuralSingle – methods and properties
Width (property) Gets or sets the width of the box.
5.5.34 StructuralMultiple
StructuralMultiple – methods and properties
NumberOfFileds (property) Gets or sets the number of fields of the structural
element.
Height (property) Gets or sets the height of the structural element.
TotalHeight (property) Gets or sets the total height of the structural
element.
Width (int nField) (property – get) Gets the width of the structural element’s
specified field.
TotalWidth (property) Gets or sets the total width of the specified field.
SetSplittingWidth (double dWidth) Sets the splitting width of the structural element.
GetAxisVertex (int nField) Returns a Point3d object representing the
specified field’s vertex.
GetAxisDirection (int nField) Returns a Vector3d object representing the
direction of the specified field’s axis.
GetAxisLength (int nField) Returns the specified field’s length.
MoveAxis (int nField, Vector3d offsetWCS) Offsets the specified field’s axis with the input
offset.
PostAppendField (double dFieldWidth) Appends a new field to the structural element as
its last field. dFieldWidth represents the new
field’s width.
71
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.35 StructuralBox
StructuralBox – methods and properties
Depth (property) Gets or sets the depth of the box.
Height (property) Gets or sets the height of the box.
Visible (property) Gets or sets the visibility of the box.
Origin (property) Gets or sets the origin (Point3d) of the box.
5.5.36 StructuralSingleSimpleFrame
StructuralSingleSimpleFrame – methods and properties
Height (eStructHeight heightOfInterest) Gets or sets the specified height.
(property)
For information about possible values of
eStructHeight, see the appendix.
MainHeight (property) Gets or sets the main height.
AdditionalWidth (property) Gets or sets the additional width.
5.5.37 StructuralSingle3GFrameSymm
StructuralSingle3GFrameSymm – methods and properties
RHeight (property) Gets or sets the roof height.
Angle (property) Gets or sets the frame’s angle.
5.5.38 StructuralSingleSlopeFrame
StructuralSingleSlopeFrame – methods and properties
5.5.39 StructuralMultipleSimpleFrame
StructuralMultipleSimpleFrame – methods and properties
5.5.40 StructuralMultipleTowerFrame
StructuralMultipleTowerFrame – methods and properties
72
ADVANCE STEEL AS COM API REFERENCE GUIDE
AddTopHeight (int nField, double dTopHeight) Adds the specified height to the specified field’s
top height.
AddBottomHeight (int nField, double Adds the specified height to the specified field’s
dBottomHeight) bottom height.
5.5.41 Weld
Weld – methods and properties
CenterPoint (property – get) Returns a Point3d object representing the center
point.
Thickness (property) Gets or sets the weld thickness.
Connect ( AstObjectsArr objectsToConnect, Connects all the objects in the array with this
eAssembleLocation location ) weld.
For information about possible values of
eAssembleLocation, see the appendix.
ChangeSeamType ( eWeldSeam whichSeam, Changes the seam definition for a created weld.
eWeldType seamType, eWeldSurface surface,
For information about possible values of
eWeldSeamExecType seamExecuting, double
eWeldSeam, eWeldSurface,
thickness, double distanceFromUpper )
eWeldSeamExecType, see the appendix.
ChangeWeldInfos ( double singleSeamLength, Changes other weld information.
int isClosed, string additionalInfo )
ChangeUpperWeldThickness ( double Changes the upper weld thickness.
thickness )
ChangeLowerWeldThickness ( double Changes the lower weld thickness.
thickness )
Pitch (property) Gets or sets the weld pitch.
MainWeldText (String MainWeldText) Gets or sets the weld MainWeldText.
DoubleWeldText (String DoubleWeldText) Gets or sets the weld DoubleWeldText.
RootOpening (property) Gets or sets the weld RootOpening.
EffectiveThroat (property) Gets or sets the weld Effective Throat.
PreparationDepth (property) Gets or sets the weld PreparationDepth.
Prefix (String prefix) Gets or sets the weld prefix.
5.5.42 StudShear
StudShear – methods and properties
Standard (property) Gets or sets the stud standard.
Material (property) Gets or sets the stud material.
ny (property) Gets or sets the number of studs in the Y
direction.
nx (property) Gets or sets the number of studs in the X
direction.
dy (property) Gets or sets the distance between studs in the Y
direction.
73
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.43 Hole
Hole – methods and properties
GetCircularArrangerInfo ( double& radius, Returns the circular arranger radius and the
long& numberOfHoles ) number of holes of this pattern.
SetCircularArrangerInfo ( double radius, long Sets the circular arranger radius and the number
numberOfHoles ) of holes of this pattern.
GetRectangularArrangerInfo ( double& dx, Returns the distances between holes of the
double& dy, long& nx, long& ny ) pattern (on the x and y axes of the pattern
creation CS) and the number of holes in both
directions.
SetRectangularArrangerInfo ( double dx, Sets the distances between holes of the pattern
double dy, long nx, long ny ) (on the x and y axes of the pattern creation CS)
and the number of holes in both directions.
GetBoundedArrangerInfo ( double& length, Returns the following data:
double& width, double& dx, double& dy, long&
Bounding rectangle length and width;
nx, long& ny, double& wx, double& wy )
Distances between holes on x and y;
Number of holes on x and y;
Edge distances on x and y.
SetBoundedArrangerInfo ( double length, Sets the following data to the hole pattern:
double width, double dx, double dy, long nx,
Bounding rectangle length and width ( the
long ny, double wx, double wy )
parameter values are ignored and recalculated
from the other parameters if the arranger type is
kBoundedArrangerLowerLeft );
Distances between holes on x and y ( the
parameter values are ignored and recalculated
from the other parameters if the arranger type is
kBoundedArrangerAll );
Number of holes on x and y;
Edge distances on x and y.
SetHoleSlotDirection ( eAxisDirection Sets the direction of the hole slot – on x or on y.
axisDirection )
For information about possible values of
eAxisDirection, see the appendix.
SetHoleSlotLength ( double length ) Sets the hole’s slot length.
SetExtendedParameter ( double sunkDepth, Sets the extended hole pattern information, that
double headDiameter, double alpha_e, means the parameters for hole types.
eHoleTapping tapping )
For information about possible values of
eHoleTapping, see the appendix.
74
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.44 SpecialPart
SpecialPart – methods and properties
Weight (property) Gets or sets the special part weight.
CenterPoint (property – get) Gets the special part’s center point
CS (property) Gets or sets the special part’s coordinate system
BlockName (property – get) Gets the special part’s block name.
Length (property – get) Gets the special part’s length.
Width (property – get) Gets the special part’s width.
Depth (property – get) Gets the special part’s depth.
Scale (property) Gets or sets the special part’s scale.
PaintArea (property – get) Gets the special part’s paint area.
SinglePartUsedForNumbering (property) Gets or sets whether the beam is considered as a
single part for numbering.
MainPartUsedForNumbering (property) Gets or sets whether the beam is considered as a
main part for numbering.
SinglePartUsedForBOM (property) Gets or sets whether the beam is considered as a
single part for the BOM.
MainPartUsedForBOM (property) Gets or sets whether the beam is considered as a
main part for the BOM.
SetBlockByFile (string filename, double Sets the special part block and scale using the
scaleFactor, Boolean bOverrideIfExists) input parameters filename (block’s filename) and
scaleFactor. The block’s file is overridden if it
already exists depending on the
bOverrideIfExists setting.
5.5.45 PositionMarkCreator
PositionMarkCreator – methods and properties
MarkProcessType (property – get) Returns an ePosMarkType data.
For information about possible values of
ePosMarkType, see the appendix.
IsUniqueInTheModel ( eNumbering where, Returns True or False.
string number )
For information about possible values of
eNumbering, see the appendix.
GetAsInternalFormat ( long number ) Returns a string – internal format.
IsInternalNumber ( string number ) Returns True or False.
GetStartAtForSingleParts ( eClassType Returns a long data value.
objectClassType )
For information about possible values of
eClassType, see the appendix.
GetStartAtForMainParts ( eClassType Returns a long data value.
objectClassType )
For information about possible values of
eClassType, see the appendix.
75
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.46 PositionMarkFactory
PositionMarkFactory – methods and properties
getNumber ( EqualPartObject equalPartObject, Returns as a string the number that will be
PositionMarkCreator positionMarkCreator ) associated to the specified object in the specified
numbering context.
updateNumber ( EqualPartObject Updates the number associated to the object.
equalPartObject, PositionMarkCreator
positionMarkCreator )
5.5.47 AstCommand
AstCommand – methods and properties
doIt ( VARIANT reserved ) Execute the command.
5.5.48 BoltHoleDefinition
BoltHoleDefinition – methods and properties
HoleType (property) Gets or sets the hole type as an eHoleType data.
For information about possible values of
eHoleType, see the appendix.
HoleTolerance (property) Gets or sets the hole tolerance.
76
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.49 AstUI
The following notes should be taken into account when working with AstUserInteraction methods:
a) Working with keywords input
The methods AcquirePoint( ), AcquireDistance( ), AcquireDouble( ), AcquireInteger( ),
AcquireUserOption( ), AcquireSingleObject( ), AcquireSingleObjectWithPoint( ),
AcquireBeamWithEnd( ) allow keywords user input. In order to enable the usage of keywords the
following steps must be accomplished:
An array of accepted keywords must be constructed. The elements in the array must be of long
and represent GUI-PRP numbers. Note: Visual Basic developers must declare explicitly the
bounds of the array. (Ex.: Dim kwdsArr(1 To 3) As Long).
Before calling the AcquireXXX() method, the SetKeywords() method must be called, passing it
the keywords array.
All AcquireXXX() methods mentioned above have an “out” parameter eUIErrorCodes&
outErrCode which returns an error code representing the user input. This parameter must be
inspected after the call to AcquireXXX(). If the parameter has the “kKwd” value, it means the user
has entered a valid keyword.
To find out the keyword entered, the GetSelectedKeyword( ) must be called. This method will
return the index of the selected keyword in the keywords array. Note that after each call to an
AcquireXXX() the keywords array is cleared.
77
ADVANCE STEEL AS COM API REFERENCE GUIDE
The following is a very simple Visual Basic sample, illustrating the usage of keywords:
Private Sub IRule_Query(ByVal pAstUI As AstSTEELAUTOMATIONLib.IAstUI)
‘…
‘Aquire a point or a keyword
Dim inputPoint As New Point3d
Dim keys(1 To 2) As Long
Dim rubberStPnt As New Point3d
Dim errCode As eUIErrorCodes
rubberStPnt.Create 0, 0, 0
‘First keyword – GUI-PRP-10000
keys(1) = 10000
‘Second keyword – GUI-PRP-10001
keys(2) = 10001
pAstUI.SetKeywords keys
inputPoint = pAstUI.AcquirePoint(True, rubberStPnt, True, True, 5000, errCode)
78
ADVANCE STEEL AS COM API REFERENCE GUIDE
The following is a simple Visual Basic sample illustrating the selection of one beam:
Private Sub IRule_Query(ByVal pAstUI As AstSTEELAUTOMATIONLib.IAstUI)
‘…
Dim inputBeam As StraightBeam
Dim clsFilter As ClassFilter
Dim errCode As UIErrorCodes
79
ADVANCE STEEL AS COM API REFERENCE GUIDE
80
ADVANCE STEEL AS COM API REFERENCE GUIDE
AcquireInteger (int nPrompt, eUIErrorCodes& Pauses for user input of an integer value and
outErrCode) returns the value entered.
The nPrompt represents a string that
AcquireInteger displays before it pauses.
The outErrorCode represents an error code
about the user selection. It will be set to kNormal
if the method succeeds, kError if it fails or
kCancel if the user cancels the request. A prior
call to SetKeywords method can also enable
keywords user input and the kKwd and
kNoResult error codes.
AcquireUserOption (int nPrompt, Pauses for user input of a keyword and returns
eUIErrorCodes& outErrCode) the selected keyword as a string value.
The nPrompt represents a string that
AcquireUserOption displays before it pauses.
The maximum length of the result string is 131
characters. Any characters beyond 131 are
discarded.
The user can enter the keyword from the
keyboard. The list of keywords that
AcquireUserOption() will accept is set by a prior
call to SetKeywords(). If the user enters a string
not specified in the call to SetKeywords(),CAD
displays an error message and tries again (and
redisplays prompt, if one was specified). If the
user types only [Return], AcquireUserOption()
returns an empty string.
81
ADVANCE STEEL AS COM API REFERENCE GUIDE
AcquireSingleObject (int nPrompt, Prompts the user to select an entity and returns
eUIErrorCodes& outErrCode) the selected entity as an AstObject object. The
accepted entities types must be set using the
class filtering mechanism described above prior to
calling this method.
The nPrompt represents a string that
AcquireSingleObject displays before it pauses.
The outErrorCode represents an error code
about the user selection. It will be set to kNormal
if the method succeeds, kError if it fails or
kCancel if the user cancels the request. A prior
call to SetKeywords method can also enable
keywords user input and the kKwd error code.
AcquireMultipleObjects (int nPrompt, Prompts the user to select multiple entities and
eUIErrorCodes& outErrCode) returns the selected entities as an AstObjectArr
object. The accepted entities types must be set
using the class filtering mechanism described
above prior to calling this method.
The nPrompt represents a string that
AcquireSingleObject displays before it pauses.
The outErrorCode represents an error code
about the user selection. It will be set to kNormal
or kNoResult, according to the user selection
AcquireSingleObjectWithPoint (int nPrompt, Prompts the user to select an entity and returns
eUIErrorCodes& outErrCode, Point3d& the selected entity as an AstObject object. The
pickPoint) accepted entities types must be set using the
class filtering mechanism described above prior to
calling this method.
The nPrompt represents a string that
AcquireSingleObjectWithPoint displays before
it pauses.
The pickPoint parameter will contain the point
picked when the entity is selected.
The outErrorCode represents an error code
about the user selection. It will be set to kNormal
if the method succeeds, kError if it fails or
kCancel if the user cancels the request. A prior
call to SetKeywords method can also enable
keywords user input and the kKwd error code.
82
ADVANCE STEEL AS COM API REFERENCE GUIDE
AcquireBeamWithEnd (int nPrompt, Prompts the user to select a beam at the desired
eUIErrorCodes& outErrCode, eBeamEnd& end and returns the selected beam as an
BeamEnd) AstObject object.
The nPrompt represents a string that
AcquireBeamWithEnd displays before it pauses.
The BeamEnd out parameter will contain the
closest end of beam to the point picked when the
beam was selected.
The outErrorCode represents an error code
about the user selection. It will be set to kNormal
if the method succeeds, kError if it fails or
kCancel if the user cancels the request. A prior
call to SetKeywords method can also enable
keywords user input and the kKwd error code.
For information about possible values of
eBeamEnd, see the appendix.
PrintMessage(int nPrompt) Prints a message in the CAD command window.
The nPrompt argument specifies the message to
display.
SetKeywords (SAFEARRAY(long) Initializes the keywords list to be used by the next
inKeywordsArr) call of one of the following user input functions:
AcquirePoint( ), AcquireDistance( ),
AcquireDouble( ), AcquireInteger( ),
AcquireUserOption( ), AcquireSingleObject( ),
AcquireSingleObjectWithPoint( ),
AcquireBeamWithEnd( ).
The input parameters represent an array of
prompts, each one of them representing one valid
keyword.
For more details, please see the above comments
in the Working with keywords input section.
GetSelectedKeyword ( ) Returns the index of the selected keyword in the
keywords array. For more details, please see the
above comments, in the Working with keywords
input section.
GetClassFilter ( ); Returns a ClassFilter object for filtering objects.
Class filters are used for object selection methods
such as AcquireSingleObject( ),
AcquireMultipleObjects( ) and
AcquireSingleObjectWithPoint( ). For more
details, please see the above comments, in the
Working with object filters section.
ClearClassFilter ( ) Empties the class filter, rejecting all accepted
classes.
83
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.50 RulePage
RulePage – methods and properties
hWnd (property) Gets or sets the page window handle as long.
title (property) Gets or sets the page title – prompt number.
5.5.51 RulePageArray
RulePageArray – methods and properties
Item ( VARIANT index ) (property – get) Returns the RulePage at the specified index in
the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( RulePage page ) Appends a new RulePage in the array.
Clear ( ) Empty the array.
5.5.52 PropertySheetData
PropertySheetData – methods and properties
FirstPageBitmapIndex (property) Gets or sets the bitmap index of the bitmap to
display on the “Properties” page of the joint.
SheetPrompt (property) Gets or sets the global sheet prompt of the joint.
ResizeOption (property) Gets or sets the page dimensions as an
eGUIDimension data.
For information about possible values of
eGUIDimension, see the appendix.
5.5.53 HRLJoint
HRLJoint – methods and properties
CreatedObjects (property – get) Returns as an AstObjectsArr the objects created
by the HRL joint.
All these objects must be added to the created
objects of the new API joint, along with the HRL
joint.
AddInputParamInt ( int param ) Adds an int parameter for the HRL joint start.
AddInputParamDouble ( double param ) Adds a double parameter for the HRL joint start.
AddInputParamString ( string param ) Adds a string parameter for the HRL joint start.
AddInputParamPoint ( Point3d param ) Adds a Point3d parameter for the HRL joint start.
AddInputParamVector ( Vector3d param ) Adds a Vector3d parameter for the HRL joint start.
AddInputObject ( EqualPartObject inputObj, int Adds an object parameter for the HRL joint start.
nGroupId )
RunPlayPart ( ) Run the HRL joint.
84
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.54 Joint
Joint – methods and properties
InputObjects (property) Gets or sets the joint input objects as an
AstObjectArr object.
CreatedObjects (property) Gets or sets the joint created objects as an
AstObjectArr object.
Updateable (property) Gets or sets if this joint is automatically updated.
Units (property – get) Returns an IAstUnitsManager object.
CreationStatus (property) Gets or sets the joint creation status. Setting it to
FALSE will result in a joint “red box” situation. The
objects created by the joint until the error
occurred will be deleted and the old objects will
be available.
UpdateDrivenConstruction ( ) Updates the joint.
CreateSubrule ( string subRuleName ) Creates and returns a Rule object.
SaveData ( Rule rule ) Saves data to joint.
LoadData ( Rule rule ) Loads data from joint.
CreateStraightBeam ( string className, string Creates a straight beam and returns a
sectionName, Role beamRole, Point3d StraightBeam object.
startPoint, Point3d endPoint, CS3d inputCS )
The beam’s className and sectionName are the
internal names for the section.
className = value from
AstorProfiles.ProfileMasterTable, column
TypeNameText. (class internal name)
sectionName = from the definition table for
className, value of column SectionName
(section internal name)
CreateBentBeam ( string className, string Creates a curved beam and returns a BentBeam
sectionName, Role beamRole, Point3d object.
startPoint, Point3d endPoint, Point3d
The beam’s className and sectionName are the
anyArcPoint, double angle )
internal names for the section.
className = value from
AstorProfiles.ProfileMasterTable, column
TypeNameText. (class internal name)
sectionName = from the definition table for
className, value of column SectionName
(section internal name)
CreateUnfoldedBeam ( AugPolyline3d Creates an unfolded beam and returns an
polylineSect, Role beamRole, Point3d startPoint, UnfoldedBeam object.
Point3d endPoint, CS3d inputCS )
The beam’s cross-section is defined by the
polyline, and the system line of the beam passes
through the first point of the polyline.
85
ADVANCE STEEL AS COM API REFERENCE GUIDE
86
ADVANCE STEEL AS COM API REFERENCE GUIDE
CreateBoltInfinitRect ( Role boltRole, string Creates a bolt pattern of type infinite, rectangular.
material, string norm, double wx_dim, double The center of the bolt pattern is at the origin of the
wy_dim, double dx_dim, double dy_dim, double specified CS.
nx_dim, double ny_dim, double diameter, CS3d
wx_dim: edge distance in the X direction
inputCS )
wy_dim: edge distance in the Y direction
dx_dim: distance between bolts in the X direction
dy_dim: distance between bolts in the Y direction
nx_dim: number of bolts in the X direction
ny_dim: number of bolts in the Y direction
Returns a Bolt object.
CreateBoltFinitRect ( Role boltRole, string Creates a bolt pattern of type finite, rectangular.
material, string norm, double wx_dim, double
The center of the bolt pattern is at the origin of the
wy_dim, double dx_dim, double dy_dim, double
specified CS.
nx_dim, double ny_dim, double diameter, CS3d
inputCS ) wx_dim: edge distance in the X direction
wy_dim: edge distance in the Y direction
dx_dim: distance between bolts in the X direction
dy_dim: distance between bolts in the Y direction
nx_dim: number of bolts in the X direction
ny_dim: number of bolts in the Y direction
Returns a Bolt object.
87
ADVANCE STEEL AS COM API REFERENCE GUIDE
CreateBlock ( AstObjectsArr fromObjects, Creates a block from the elements in the array.
string path, string blockName, Boolean These objects can be deleted after the block is
deleteSourceObjects, Point3d blockOrigin ) created, depending on the value of
deleteSourceObjects. You must NOT add these
elements to the array of created objects of the
joint if they will be deleted when creating the
block.
The created block can now be inserted as a
special part using the CreateSpecialPart method.
Returns the real name (as a string) with what the
block was created in the drawing. This name must
be passed as a parameter to the
CreateSpecialPart method.
The origin of the block will be set in the
blockOrigin point.
CreateSpecialPart ( Role spRole, double scale, Creates and returns a SpecialPart object.
string realBlockName, CS3d inputCS )
For the insertion point, the inputCS origin must be
correctly specified.
CreateStudShearConnector ( Role role, CS3d Creates and returns a StudShear object.
inputCS, ePatternArranger arrangerType,
The center of the stud shear pattern is at the
AstObject connectedObj )
origin of the specified CS.
88
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.55 Rule
The following methods and properties must be implemented in a new API joint. See the Architecture
chapter.
89
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.56 Filer
Filer – methods and properties
readVersion ( ) Returns the current rule version.
writeVersion ( long version ) Sets the current rule version.
readItem ( string name ) Returns the data from the Filer with the specified
name.
writeItem ( VARIANT value, string name ) Writes the data to the Filer with the specified
name
GetItems () Returns all joint parameters map.
5.5.57 FilerItem
Filer – methods and properties
ItemKey ( ) Returns the joint parameter key.
ItemValue ( ) Returns the joint parameter value.
90
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.58 DbCursor
DbCursor – methods and properties
Key (property) Gets or sets the external database key.
AppendDataToTable ( ) Appends data into a new record.
IsSavingToTable ( Rule rule, bool& Sets bWillSaveToTable parameter to true if the filer
bWillSaveToTable ) will be used to store a record in the tabular
parameters table after the OutField method will be
finished (the context is: on sheet “Table”, the user
pushed the “Import” button).
Returns the value of the key at which the import will
be made (only values of type LONG will be returned).
5.5.59 Role
This object will be passed after it is created to almost all of the methods that create Advance Steel
objects. The role has mainly two “visible” applications: identify objects with identical geometry and
properties and set which of the properties created objects can be set by the user outside of the joint.
To define a complete role means to assign to the role a name, the class type of the objects it will be
applied to and to define which of the object’s properties will be editable outside the joint.
After setting the object class type, you have to specify which will be the editable attributes. In Visual
C++ syntax, this is what you have to do:
'Role Object
Dim NewRole As Role
Dim RoleName As String = "Test"
NewRole = m_Joint.CreateRole(RoleName)
NewRole.ClassType = kBeamStraightClass 'this role will be used when creating a straight beam
'set here all the properties which can be modified outside the joint
NewRole.Attribute(kBeamMaterial) = 1
NewRole.Attribute(kBeamCoating) = 1
91
ADVANCE STEEL AS COM API REFERENCE GUIDE
If a role attribute should not be modified outside the joint (this is the default state of attributes – read-
only), you could use:
role->put_Attribute(kBeamMaterial, 0); //means the beam material cannot be set outside the joint
NewRole.Attribute(kBeamMaterial) = 0 'means the beam material cannot be set outside the joint
5.5.60 AstObjectsArr
AstObjectsArr – methods and properties
Item ( VARIANT index ) (property – get) Returns the AstObject at the specified index in
the array.
Count ( ) (property – get) Returns the number of elements in the array.
Add ( AstObject object ) Appends a new AstObject in the array.
5.5.61 ClassFilter
ClassFilter – methods and properties
Count ( ) (property – get) Returns the number of accepted classes in the
class filter.
ElementAt (int Index) (property – get) Returns the class type at the specified index in
the class filter as an eClassType value.
For information about possible values of
eClassType, see the appendix.
AppendAcceptedClass ( eClassType Val) Appends the specified class type to the class
filter, as an accepted class.
For information about possible values of
eClassType, see the appendix.
Clear ( ) Empties the class filter, rejecting all classes in it.
5.5.62 AstColor
AstColor – methods and properties
ColorMethod ( ) (property) Gets or sets the color method for the color as an
eAstColorMethod value.
For information about possible values of
eAstColorMethod, see the appendix.
92
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.63 ExternalMethod
ExternalMethod – methods and properties
Run ( ) Implement here the command logic.
GetFeatureName ( string& FeatureName ) Must return True or False depending on license
feature usage for this command.
The FeatureName parameter must be filled with
the license feature name, identical to the feature
name in the license file (if a feature is used for the
command).
InvalidFeature ( int reserved ) Automatically called in the case of invalid feature
for the command (if a feature is used).
Write your own code for such an event or simply
let this function do nothing.
5.5.64 JointTransfer
JointTransfer – methods and properties
Id (property) Gets or sets the name (ID).
ClassType (property) Gets or sets the Role class type as an
eClassType.
For information about possible values of
eClassType, see the appendix.
Attribute ( eAttributeCodes attr ) (property) Gets or sets the status of the Role’s specified
attribute.
For information about possible values of
eAttributeCodes, see the appendix.
93
ADVANCE STEEL AS COM API REFERENCE GUIDE
5.5.65 AstCreator
Very similar with the Joint interface in regards to its purpose.
All object creation methods are available, and are similar with the Joint methods.
94
6 Chapter 6
Appendix – Common data and types
6.1 Profiles Access data
eProfCommonData
kHeight 1 Section height
kWidth 2 Section width
kWeb 3 Web thickness
kFlange 4 Flange thickness
kRadiusWeb 5 Inner radius web/flange
kRadiusFlange 6 Outer radius flange
kFlangeWx1 7 Marker line along the section X-
axis, distance from the physical
center to the right
kFlangeWx2 8 Second marker line along the
section X-axis, distance from the
physical center to the right
kFlangeWy1 9 Marker line along the section Y-
axis, distance from the physical
center to the upper side
kFlangeWy2 10 Second marker line along the
section Y-axis, distance from the
physical center to the upper side
kFlangeWy3 11 Third marker line along the
section Y-axis, distance from the
physical center to the upper side
kEx 12 Eccentricity against the section X-
axis, distance from the physical
center to the left
kEy 13 Eccentricity against the section Y-
axis, distance from the physical
center to the lower side
kExWeb 14
eProfRefAxis
kUpperLeft 0
kUpperSys 1
kUpperRight 2
kMidLeft 3
kSysSys 4
kMidRight 5
kLowerLeft 6
kLowerSys 7
kLowerRight 8
kUpperWeb 101
ADVANCE STEEL AS COM API REFERENCE GUIDE
kSysWeb 104
kLowerWeb 107
eProfStiffenerType
kFull 1 Full stiffener
kHalf 2 Half stiffener
eProfStiffenerGen
kGeneric 0
kGenDefault 1
kExplicit 2
eProfVertexType
kPVTNone 0
kRadius 1 concave
kFillet 2 convex
kChamfer 3
eProfSnapType
kPSTFlangeMiddle 0
eProfGapMode
kGapNone 0
kGapGeneral 1
kGapFlangeOut 2
kGapWeb 3
kGapFlangeIn 4
kGapFace 10
kGapEqual 11
kGapEqualButFace 12
kGapEqualButFaceAside 13
kGapUnequal 21
kGapUnequalAndFace 22
97
ADVANCE STEEL AS COM API REFERENCE GUIDE
eWeldType
kFlangeButtWelding 1 Flange butt-welding joint
kIWeld 2 I weld
kVWeld 3 V weld
kHVWeld 4 HV weld
kYWeld 5 Y weld
kHYWeld 6 HY weld
kUWeld 7 U weld
kHUWeld 8 HU weld
kTWeld 9 Fillet weld
kPerforationWeld 10 Perforation weld
kSpotWeld 11 Spot weld
kLineWeld 12 Line weld
kSquareEdgeWeld 13 Square edge weld
kHalfSquareEdgeWeld 14 Half-square edge weld
kFrontFlushWeld 15 Front flush weld
kProfileWeld 16 Profile weld
kSlantWeld 17 Slant weld
kSeamWeld 18 Seam weld
kResufaceWeld 19 Resurface weld
kCounterWeld 20 Counter weld
kFlangeButtWeldingJointWithCounterWeld 1001 Flange butt-welding joint with
counter weld
kDIWeld 1002 Combi welding D-I
kVWeldWithCounterWeld 1003 Combi welding V-Weld with
counter weld
kXWeld 1004 Combi welding X
kKWeld 1005 Combi welding K
kDYWeld 1006 Combi welding D-Y
kKWebWeld 1007 Combi welding K-web weld
kDUWeld 1008 Combi welding D-U
kDHUWeld 1009 Combi welding D-HU
kVUWeld 1010 Combi welding V-U
kDoubleFilletWeld 1011 Combi welding double fillet weld
98
ADVANCE STEEL AS COM API REFERENCE GUIDE
eWeldSeam
kUpperSeam 0 Upper weld seam
kLowerSeam 1 Lower weld seam
eWeldSurface
kUndefined 0
kFlat 1
kConcav 2
kConvex 3
eWeldSeamExecType
kUndefinedType 0
kRootElaborated 1
kSeamSmoothed 2
kSeamTransitionsWrought 3
kAddendumUsed 4
kPadUsed 5
ePatternArranger
kCircularArranger 1 Circular, the CS origin is the
midpoint of the arranger.
kRectangularArranger 2 Rectangular, the CS origin is the
midpoint for the arranger
kBoundedArrangerAll 3 Bounded, the CS origin is the
midpoint of the arranger
kBoundedArrangerLowerLeft 4 Bounded, the CS origin is the
lower left point of the arranger
eGUIDimension
kStandard 0 Standard dialog pages dimension
kBig 1 25% increased size
eAssembleLocation
kOnSite 0
kInShop 1
eBeamEnd
kBeamStart 1
kBeamEnd 2
99
ADVANCE STEEL AS COM API REFERENCE GUIDE
eBeamSide
kUpperSide 1
kLowerSide 2
eHoleTapping
kHoleTappingLeft 0
kHoleTappingRight 1
eNumbering
kSingle 0
kMain 1
kBoth 2
ePosMarkType
kPosMarkUndefined 0
kSinglePart 1
kMainPart 2
eClassType
kUnknownClass 0 Generic
kBeamClass 200 Beam
kBeamStraightClass 203 Straight Beam
kBeamShorteningClass 206 Beam Shortening
kBeamNotchStdClass 210 Standard Beam Notch
kBeamContourNotchClass 212 Beam Contour Notch
kBeamMultiContourNotch 213 Beam Multi-Contour Notch
kBeamBentClass 214 Curved Beam
kBeamUnfoldedClass 215 Unfolded Beam
kBeamCompoundClass 216 Compound Beam
kBeamStraightCompoundClass 217 Compound Straight Beam
kBeamPolyClass 218 Poly Beam
kBeamNotchExClass 219 Extended Beam Notch
kPlateClass 300 Plate
kPlateFeatVertChamfer 303 Plate Chamfer
kPlateFeatVertFillet 304 Plate Fillet
100
ADVANCE STEEL AS COM API REFERENCE GUIDE
eFilletTypes
kFillet_Convex 0
kFillet_Concav 1
kFillet_Undefined 2
eBeamTag
kThisSide 0
kOtherSide 1
eBeamReprType
kOffMode 0
kBeamMode 1
kFeatMode 2
kRodMode 3
101
ADVANCE STEEL AS COM API REFERENCE GUIDE
kSymbolMode 4
eRuleExportDataType
kGUIPrompt 0 GUI/PRP message
kUPSPrompt 1 UPS/PRP message
kBitmap 2 bitmaps
kTable 3 Tables (excluding tabular
parameters tables)
kSubRule 4 Subrules (written with new API)
eAxisDirection
kXDirection 1
kYDirection 2
eAttributeCodes
kBeamDenotation
kBeamMaterial
kBeamCoating
kBeamSinglePartNumber
kBeamMainPartNumber
kBeamSinglePartPrefix
kBeamMainPartPrefix
kBeamReferenceAxis
kBeamReferenceAxis_Y
kBeamReferenceAxis_Z
kBeamAngle
kBeamSection
kBeamOffset_Y
kBeamOffset_Z
102
ADVANCE STEEL AS COM API REFERENCE GUIDE
kBeamRole
kBeamSystemlineRadius
kBeamAssembly
kBeamNote
kBeamItemNumber
kBeamSinglePartDetailStyle
kBeamMainPartDetailStyle
kBeamDeviation
kBeamMirroredCrossSection
kBeamSPUsedForCollisionCheck
kBeamSPUsedForNumbering
kBeamSPDisplayRestriction
kBeamSPExplicitQuantity
kBeamMPUsedForCollisionCheck
kBeamMPUsedForNumbering
kBeamMPDisplayRestriction
kBeamMPExplicitQuantity
kBeamUnfoldedThickness
kBeamUnfoldedPortioning
kBeamUnfoldedCrossSection
kPlateThickness
kPlatePortioning
kPlateLength
kPlateWidth
kPlateRadius
kPlateLengthIncrement
kPlateRadiusIncrement
kPlateDenotation
kPlateMaterial
kPlateCoating
kPlateSinglePartNumber
kPlateMainPartNumber
kPlateSinglePartPrefix
kPlateMainPartPrefix
kPlateTopInPositive_Z_Direction
kPlateRole
kPlateAssembly
103
ADVANCE STEEL AS COM API REFERENCE GUIDE
kPlateNote
kPlateItemNumber
kPlateSinglePartDetailStyle
kPlateMainPartDetailStyle
kPlateType
kPlateOffset
kPlateSPUsedForCollisionCheck
kPlateSPUsedForNumbering
kPlateSPDisplayRestriction
kPlateSPExplicitQuantity
kPlateMPUsedForCollisionCheck
kPlateMPUsedForNumbering
kPlateMPDisplayRestriction
kPlateMPExplicitQuantity
kContourNotchLength
kContourNotchWidth
kContourNotchRadius
kContourNotchLengthIncrement
kContourNotchRadiusIncrement
kContourNotchGap
kContourNotchOffset
kContourNotch_Z_Clipping
kFeatContourLength
kFeatContourWidth
kFeatContourRadius
kFeatContourLengthIncrement
kFeatContourRadiusIncrement
kFeatContourGap
kFeatContourOffset
kChamferLength
kChamferWidth
kChamferLengthIncrement
kFilletRadius
kFilletRadiusIncrement
104
ADVANCE STEEL AS COM API REFERENCE GUIDE
kFilletFilletType
kCircularBoltPatternNumberOfScrews
kCircularBoltPatternRadius
kNonRadialScrewBoltPatternNumberOfScrews_X_Direction
kNonRadialScrewBoltPatternNumberOfScrews_Y_Direction
kNonRadialScrewBoltPatternInnerScrewDistance_X_Direction
kNonRadialScrewBoltPatternInnerScrewDistance_Y_Direction
kNonRadialScrewBoltPatternOuterScrewDistance_X_Direction
kNonRadialScrewBoltPatternOuterScrewDistance_Y_Direction
kNonRadialScrewBoltPatternTotalLength_X_Direction
kNonRadialScrewBoltPatternTotalWidth_Y_Direction
kBoltPatternCommonDiameter
kBoltPatternCommonHoles
kBoltPatternCommonLength
kBoltPatternCommonGripLength
kBoltPatternCommonGripLengthAddition
kBoltPatternCommonHoleTolerance
kBoltPatternCommonStandard
kBoltPatternCommonGarnitur
kBoltPatternCommonAssembleLocation
kBoltPatternCommonMaterial
kBoltPatternCommonCoating
kBoltPatternCommonRole
kBoltPatternCommonDenotation
kBoltPatternCommonNote
kBoltPatternCommonAssembly
kBoltPatternCommonItemNumber
kBoltPatternCommonIgnoreMaxGap
kBoltPatternCommonInvertAble
kBoltPatternCommonSPUsedForCollisionCheck
kBeamShorteningReferenceLength
kBeamShorteningAngle_Y
kBeamShorteningAngle_Z
105
ADVANCE STEEL AS COM API REFERENCE GUIDE
kBeamContourNotchLength
kBeamContourNotchWidth
kBeamContourNotchRadius
kBeamContourNotchLengthIncrement
kBeamContourNotchRadiusIncrement
kBeamContourNotchGap
kBeamContourNotchOffset
kBeamContourNotch_Z_Clipping
kWeldPatternAdditionalText
kWeldPatternThickness
kWeldPatternLowerDistance
kWeldPatternSeamType
kWeldPatternSeamExecuting
kWeldPatternSeamShape
kWeldPatternAssembleLocation
kWeldPatternSeamLength
kWeldPatternIsClosed
kSpecialPartMaterial
kSpecialPartCoating
kSpecialPartSinglePartNumber
kSpecialPartMainPartNumber
kSpecialPartSinglePartPrefix
kSpecialPartMainPartPrefix
kSpecialPartDenotation
kSpecialPartAssembly
kSpecialPartNote
kSpecialPartItemNumber
kSpecialPartRole
kSpecialPartWeight
kSpecialPartBlockName
kSpecialPartScale
kSpecialPartSPUsedForCollisionCheck
kSpecialPartSPUsedForNumbering
kSpecialPartSPDisplayRestriction
kSpecialPartSPExplicitQuantity
kSpecialPartMPUsedForCollisionCheck
106
ADVANCE STEEL AS COM API REFERENCE GUIDE
kSpecialPartMPUsedForNumbering
kSpecialPartMPDisplayRestriction
kSpecialPartMPExplicitQuantity
kHolePatternDiameter
kHolePatternType
kHolePatternSlotDirection
kHolePatternSlotLength
kHolePatternSunkDepth
kHolePatternHeadDiameter
kHolePatternAlpha_E
kHolePatternTapping
kHolePatternArrangementRadius
kHolePatternArrangementNumberOfElements
kHolePatternArrangement_D_X
kHolePatternArrangement_D_Y
kHolePatternArrangement_N_X
kHolePatternArrangement_N_Y
kHolePatternArrangement_W_X
kHolePatternArrangement_W_Y
kHolePatternArrangementLength
kHolePatternArrangementWidth
kConnectorPatternStandard
kConnectorPatternMaterial
kConnectorPatternCoating
kConnectorPatternArrangementRadius
kConnectorPatternArrangementNumberOfElements
kConnectorPatternArrangement_D_X
kConnectorPatternArrangement_D_Y
kConnectorPatternArrangement_N_X
kConnectorPatternArrangement_N_Y
kConnectorPatternArrangement_W_X
kConnectorPatternArrangement_W_Y
kConnectorPatternArrangementLength
kConnectorPatternArrangementWidth
107
ADVANCE STEEL AS COM API REFERENCE GUIDE
kConnectorElementLength
kConnectorElementDiameter
eValueType
kRelative 0 Relative value of Y
kAbsolute 1 Absolute value of Y
eUIErrorCodes
kNormal 0 Request succeeded
kError 1 Error
kCancel 2 User canceled request – Ctrl-C
kRejected 3 CAD rejected request – invalid
kKwd 4 Keyword returned
kInputTruncated 5 Input did not fit in the buffer
kNoResult 6 No Result
eContourTypes
kRectangle 0 Rectangular contour
kCircle 1 Circle
kPoly 2 Polygonal contour
kContourUndefined 3 Undefined contour
eNotchCornerType
kStraight 0 Straight notch corner
kRound 1 Round notch corner
kBoringOut 2 Boring out notch corner
eAstColorMethod
kAstColorByACI 0 Color defined by CAD Color Index
kAstColorByRGB 1 Color defined by Red, Green and
Blue value
eArcType
kFullCircle 0 Complete circle
kSimpleArc 1 Simple arc
kBadArc 2 Bad arc
eVertexInfoType
108
ADVANCE STEEL AS COM API REFERENCE GUIDE
ePolyValidity
kVUnknown 0 Unknown validity
kVOk 1 Valid
kVSelfIntersecting 2 Self-intersecting
kVLessVertices 3 Too less vertices
eNotchXRotation
kXRotAroundNotch 0 Rotation around an axis which is
parallel to the beam’s axis and
intersects the notch’s axis.
kXRotAroundBeam 1 Rotation around beam’s axis
eStructHeight
kSTop 0 Top
kSFromTop 1 From Top
kSFromBottom 2 From Bottom
kSBetween 3 Between
eType
kAModeler 0
kAcis 1
kBodyUnknown 2
109
ADVANCE STEEL AS COM API REFERENCE GUIDE
eBodyContext - for more information about these values please see next pages
kBodyNormal 0 Used in a getAstModeler call, will
return a body with features
kBodyDetailed 1
kBodyHull 2
kBodyUnNotched 3 Use if you intend to make
intersections of the body with
lines, arcs, etc.
Returns a body without features.
kBodyNotchedHullBox 4
kBodySymbol 5
kBodyCollision 6
kBodyDetailing 7
kbodyExactDetailing 8
kBodyOverviewDetailing 9
kBodyOverviewDetailingExact 10
kBodyGTENormal 11
kBodyGTEDetailed 12
kBodyNC 13
kBodyTubeEndDev 14
110
ADVANCE STEEL AS COM API REFERENCE GUIDE
Context Hull With Detailed Welding Collision Exact Symbol Exact Profile Deviation Facets Default Name Note
Features Feature Preps. Section Number
kBodyNormal No Yes No No No No No No 1.0 16 -
111
ADVANCE STEEL AS COM API REFERENCE GUIDE
112
ADVANCE STEEL AS COM API REFERENCE GUIDE
6.4 Examples
Below you will find some examples and HOW TOs which might give you some hints about stuff you
would like to do with your rule.
113
ADVANCE STEEL AS COM API REFERENCE GUIDE
//get the subjoint created objects and add them to this joint (the parent joint)
hr = subJoint->get_CreatedObjects(&subJointCreatedObjects);
VARIANT count;
hr = subJointCreatedObjects->get_Count(&count);
for (int jj = 0; jj < count.intVal; jj++)
{
IAstObjectPtr curElem;
hr = subJointCreatedObjects->get_Item(CComVariant(jj), &curElem);
hr = spCreatedObjects->Add(curElem);
}
114
7 Chapter 7
AstControls library
7.1 AstUnitControl
For this control, the following methods and properties are available and only these methods and
properties should be used in setting/getting information to/from the control:
.DoubleValue – control value (use ONLY for double type controls)
.IntegerValue – control value (use ONLY for integer type controls)
.Text – control value (use ONLY for string type controls)
.EditType
.Enabled
.LabelDbKey – UPS prompt number
.LabelLength
.Visible
For numeric controls, you must use the DoubleValue / IntegerValue property, not the Text property, to
get or set the current value of the control.
7.2 AstComboTableControl
For this control, the following methods and properties are available and only these methods and
properties should be used in setting/getting information to/from the control:
.comboCaption (displayed runname)
.comboIndex (order of runname in list, starting from 0 – not the key of the table record)
.longKey (key of record for current runname – use ONLY when table has an integer key)
.stringKey (key of record for current runname – use ONLY when table has a string key)
.Enabled
.LabelKey (UPS prompt number)
.LabelLength
.Sort
.tableName (linked table name)
.Visible
ADVANCE STEEL AS COM API REFERENCE GUIDE
7.3 AstCheckBoxControl
For this control, the following methods and properties are available and only these methods and
properties should be used in setting/getting information to/from the control:
.captionKey (UPS prompt number)
.Value
.Enabled
7.4 AstProfileControl
For this control, the following methods and properties are available and only these methods and
properties should be used in setting/getting information to/from the control:
.AppendAcceptedClass (class name) – value from AstorProfiles.ProfileMasterTable, column
TypeNameText
.AppendAcceptedClassGroup (class group) – value from AstorProfiles.ProfileMasterTable, column
SubtypeName
.Appearance
.CaptionClass – UPS prompt number
.CaptionShowHideAllSections – UPS prompt number
.CaptionTyp – UPS prompt number
.CheckBoxOnLeft
.CurrentClass
.CurrentSection
.CurrentCrossSection
.CurrentProfileName
.DropHeight
.DropWidth
.Enabled
.LabelLength
.RemoveAcceptedClass
.ShowHideAllSections
.SummaryDroppedDown
.SummaryRepresentation
.UseFilterClass
.Visib
118
ADVANCE STEEL AS COM API REFERENCE GUIDE
119