Question 1
How do you deal with compound sections e.g.
cruciform sections?
Answer to Q1
Using a section_profile_compound. This is a type of complex
section profile that is as made up from two or more other section profiles. Each of these
section profiles is placed with their local coordinate system related to some point. Each
of the section profiles may also be rotated with respect to a reference coordinate system.
In some cases, the local coordinate system of the first section profile referenced would
provide the reference coordinate system to locate and rotate the remaining section
profiles. Back-to-back angles and crane rails are simple examples of compound section
profiles.

Question 2
When you talk about a planar assembly, does this mean we
can describe, e.g., a pressure vessel or a tank?
Answer to Q2
No. A planar assembly is one that lies in a plane i.e. one that is predominantly two
dimensional- e.g. a floor slab or a wall. A pressure vessel is three dimensional and
therefore is described using an assembly_design_structural_member_cubic.

Question 3
What is the meaning of the LOGICAL value for section_profile's attribute
"mirrored"?
Answer to Q3
The 'mirrored' attribute of the entity section_profile declares whether the
section profile is mirrored (TRUE), not (FALSE), or unknown (UNKNOWN). This
attribute is used when asymmetric sections are used in a handed fashion to that
defined in the entity definition. For example, an angle section is defined such
that its toe appears on the right hand (y-negative) side when viewed from the
start (x=0) end. If the angle section is then used in an element or part such
that its toe appears on the left hand (y-positive) side when viewed from the
start (x=0) end, the section is said to be mirrored (and the attribute is given
a value of TRUE).
Declaring a section that is symmetrical about the z-axis to be mirrored has
no effect on the definition of the geometry of the section or its local axes. In
such a case, a value of UNKNOWN would be more appropriate. It should be noted
that the mirroring acts about the z-axis only – changing a ‘right handed’
section into a ‘left-handed’ section. Where the section is used such that
its local z-axis points ‘down’ rather than ‘up’, this transformation is
done by the rotation of the element or the part about its local x-axis (and not
by using the mirrored attribute). The definition of the cardinal points is
mirrored when this attribute is set to TRUE. That is ‘right’ becomes
‘left’ and ‘left’ becomes right. This is illustrated in Figure 14.3 of
Volume 4 of the CIS/2 documentation.

Question 4
What is the appropriate way to assign a unit to material_strength?
One of our engineers and I were looking through the different units for
one that seemed to represent kips/in2 (N/m2). Material_strength's
material_strength_value is a pressure_measure, but pressure_unit doesn't
seem to have the right dimensional exponents. We were expecting the
length exponent to be -2, but it is -1. Can you explain it to me?
Answer to Q4
An SI pressure unit is represented in a Part 21 file as
/* Pressure Unit (kiloPascal) */
#32 = (NAMED_UNIT(*) PRESSURE_UNIT() SI_UNIT(.KILO.,.PASCAL.));
An Imperial pressure unit is represented in a Part 21 file as
/* Pressure Unit (kip per square inch) */
#120 = DIMENSIONAL_EXPONENTS (-1.0,1.0,-2.0,0.0,0.0,0.0,0.0);
#121 = (CONTEXT_DEPENDENT_UNIT('KIPS_PER_SQUARE_INCH') NAMED_UNIT(#120)PRESSURE_UNIT());
The dimensional exponents may appear odd - because they are derived
in the following way. Pressure is Force per unit area (P=F/A), Force is
mass times acceleration (F=ma), acceleration is rate of change of
velocity (a=v/t), and velocity is rate of change of displacement
(v=l/t). Thus, the dimensional exponents of a pressure unit are
(M*(L/T2))/(L2). Which resolves to (M*L-1*T-2) - hence only -1 in the
length exponent.

Question 5
For my linear units, I created a representation using a
geometric_representation_context_and_global_unit_assigned_context for my
context, where my units were length units. I noticed that all
representation_items need to have a representation that references them.
This includes material_representation_items. So I thought I should set
up a similar representation (material_representation) for my pressure
units using a global_unit_assigned_context_and_material_property_context.
However, I noticed that my material_isotropic references a
material_representation through it's "definition" attribute,
but I am just using material_property_context_dimensional for the
context, not ANDOR global_unit_assigned_context. Do I need a global
representation for all of my material representation items?
Also, global_unit_assigned_context has as one of it's attributes a
"Set of Units". Why not just one unit? When would I use more
than one kind of unit?
Answer to Q5
Let's take it reverse order.
ENTITY global_unit_assigned_context
SUBTYPE OF (REPRESENTATION_CONTEXT);
units : SET [1:?] OF UNIT;
END_ENTITY; -- STEP Part 41
- Yes, you can have a set of one unit. You will need more than one
unit when your context refers to several things which all need different
units. For example, the representation_context can also be a
material_loading_context AND a material_strain_context AND
material_stress_context (because of the ANDOR supertypes). Each of these
parameters should be assigned a unit. A Part 21 example os shown below.
#3051=MATERIAL_ISOTROPIC(987978997,'my material','my
description',#3052); #3052=MATERIAL_REPRESENTATION('my
rep',(#3058,#3059,#3062),#3053); #3053=(GLOBAL_UNIT_ASSIGNED_CONTEXT((#3054,#3055,#3060))
MATERIAL_PROPERTY_CONTEXT()
MATERIAL_PROPERTY_CONTEXT_DIMENSIONAL(0.0,16.0)
MATERIAL_PROPERTY_CONTEXT_STRAIN(0.0,0.002)
REPRESENTATION_CONTEXT('context 1234','context for material'));
#3054=RATIO_UNIT(#3056); #3055=PRESSURE_UNIT(#3057);
#3056=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0); #3057=DIMENSIONAL_EXPONENTS(-1.0,1.0,-2.0,0.0,0.0,0.0,0.0);
#3058=MATERIAL_ELASTICITY('my elasicity',0.3,200.0,76.92,160.0);
#3059=MATERIAL_STRENGTH('yield strength',275.0);
#3062=MATERIAL_STRENGTH('ultimate tensile strength',430.0);
#3060=LENGTH_UNIT(#3061);
#3061=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
Now, the material_representation_item must be used as part of a
material_representation (the two entities are mutually dependent), and
the material_representation must have a context that is BOTH a
material_property_context AND a global_unit_assigned_context (due to
WHERE Rule WRM21). So yes, you do need a global representation for all
of your material representation items - one for each 'group' of material
properties.

Question 6
For material_mass_density, I need to define a mass per unit volume
unit for the mass_density. I have looked through us_units.stp and
si_units.stp and I didn't see any examples of this type of unit. I'm
assuming it is going to be some kind of derived unit. Does anyone have
an example they can share with me?
Answer to Q6
Unlike mass_per_length - mass density does not have an explicitly
named unit in LPM/5 - you have to 'make your own' using the derived_unit
entity.
See below for examples of mass density unit.
/* SI Mass per volume Unit (kilogram per cubic metre) */
#1380 = DERIVED_UNIT ((#1381, #1382));
#1381 = DERIVED_UNIT_ELEMENT (#1383, 1.0);
#1382 = DERIVED_UNIT_ELEMENT (#1384, -3.0);
#1383 = (MASS_UNIT() NAMED_UNIT(*) SI_UNIT(.KILO.,.GRAM.));
#1384 = (LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT($,.METRE.));
/* Imperial Mass per volume Unit (pound per cubic inch) */
#1181 = DERIVED_UNIT ((#1182, #1183));
#1182 = DERIVED_UNIT_ELEMENT (#1121, 1.0);
#1183 = DERIVED_UNIT_ELEMENT (#1111, -3.0);
#1120 = DIMENSIONAL_EXPONENTS (0.0,1.0,0.0,0.0,0.0,0.0,0.0);
#1121 = (CONTEXT_DEPENDENT_UNIT('POUND') MASS_UNIT() NAMED_UNIT(#1120));
#1110 = DIMENSIONAL_EXPONENTS (1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#1111 = (CONTEXT_DEPENDENT_UNIT('INCH') LENGTH_UNIT() NAMED_UNIT(#1110));

Question 7
How can I represent a building storey in CIS/2?
Answer to Q7
A building storey is represented by the entity "zone_of_building_storey"
described on page 88 of publication SCI-P-268 (Volume 4 of the CIS/2
documentation). The attribute "zone_name" may be used to represent the
"storey number". The total number of storeys of a building may be
derived by reference to the "building". Storeys may be grouped using
the "group_of_structural_data" entity described on page 439 of
SCI-P-268.

Question 8
How are design code parameters
represented? By the
design_criterion_documented?
Answer to Q8
As you may have ready worked out, the 'design_criterion' holds a free
text description concerning an aspect of the design of an assembly. The
'design_criterion_documented' allows a little more formality in the
detail. It effectively relates an instance of 'assembly_design' with an instance
of 'document_usage_constraint'. This STEP entity represents a
documented constraint on the use of the information represented by the 'assembly_design'.
As you correctly guessed, this would typically be a design parameter as
documented in a national standard or code of practice.
(See pages 37 and 879 of publication SCI-P-268 (Volume 4 of the CIS/2
documentation).
(For the definition of 'document_usage_constraint' see ISO
10303-41:1994: clause 4.2.3.4.)

Question 9
Are there any examples on how to represent general solids? How
are hole features derived from model entities (ex. pipe penetrations)
defined and maintained?
Answer to Q9
In CIS/2, solids are represented using entities from the
geometric_model_schema of STEP Part 42 (ISO 10303-42:1994 clause
6). To understand the STEP Part 42 constructs you may wish to
read "Euler Formulas and Geometric Modeling" by
P.R.Wilson, IEEE Computer Graphics & Applications, Vol. 5, No 8
pp24-36, August 1985. (Peter Wilson was one of the main contributors to
STEP Part 42.)
The entity 'solid_model' and its subtypes are shown in EXPRESS-G on page
853 of publication SCI-P-268 (Volume 4 of the CIS/2 documentation).
In most situations, you will not need to resort to explicit geometry
to define features that are applied to steel parts. As seen on
pages 849-851 of publication SCI-P-268, there are a whole range of
'simple' features that define chamfers, notches, and bolt holes.
Page 275 explains the principles behind the use of features and how they
are applied to parts.

Question 10
How would structural fireproofing by represented?
It’s often more than just a simple attribute, but can be
modeled complete with offsets from member ends, and have different
contour configurations etc…
Answer to Question 10
It really depends on the type of fireproofing you have. For
example, if you are using an intumescent paint then this should be
represented as a surface treatment. As seen on
pages 863 of publication SCI-P-268, LPM/5 has a range of surface
treatments, and the entity 'surface_treatment_coat' allows the
definition of the number of layers of coating, the method of coating and
the thickness of each layer. The specification of each coat is made by
reference to the entity 'coating'. ('Coating' is simply a type of
'structural_frame_product', and as such, can be given a material, a
price, a standard reference, etc...
To apply the coating to the part, use and instance of 'feature_surface_treatment'
and apply it to the part (or assembly) using an instance of 'located_feature_for_located_part'
(or located_feature_for_located_assembly).
A similar approach may be taken for sprayed or brush applied fire
protection systems.
If, on the other hand, fire protection is provided by a boarded
system then you may wish to treat the boards as separate products, with
an appropriate material specification or item reference. (Remember, if
its in a product catalogue - it can have an item reference.) The
structure is made of assemblies that contain a number of non-steel
parts
In the situation where fire protection is provided by concrete
encasement, then you may wish to treat the protected members as an assembly
with a steel component and a concrete component. If the steel and
concrete act compositely, then you may represent the transformed section
profile for analysis purposes using an instance of 'section_profile_compound'
ensuring that you have used an appropriate modular ratio.
As you can see, concrete and steel building components are treated as
products in CIS/2 and are both represented by instances of 'structural_frame_product'
(or one of its subtypes).

Question 11
There seems to be two ways to map analysis results to design_parts.
One is to manage the correspondence between element and design_part
instances with element_mapping, that refers to two corresponding
instances. The other is to use design_result_mapped, as an AND
inheritance to design_result_part. This defines a direct path between
analysis_results_set and design_part. Do you have guidance on which to
use in different conditions?
Answer to Q11
The preferred way to map analysis results onto a design part is to
use the entity 'design_result_mapped' together with its sibling subtypes
design_result_part. This provides the most direct relationship between
analysis results and design parts and allows the specification of the
axial, bending or shear resistance required for a specific design part.
The set of analysis results that are associated with the 'design_result_mapped'
show the origin of the design results. (These are not essential for
fabrication, but it allows checks to be made - such as the factoring
used to derive the design results.)

Question 12
If it is desired to manage the correspondence between elements and
both design_parts and located_parts, is it required to have two sets of
element_mapping, one set to address correspondences between elements and
design_parts, and another set to deal with the correspondences between
elements and located_parts?
Answer to Q12
The elements, design_parts and located_parts fit into the analysis,
design and physical models respectively. There are several ways of
mapping these items in the LPM, and which one you choose will depend
upon your viewpoint. Thus, if you are an analyst (creating analysis
models) you should map from element to part, located_part, or
design_part using the entity element_mapping. If you are a detailer or
fabricator (creating physical models) then you should map from part to
element using the entity part_map. If you need to manage the
correspondence between elements and both design_parts and located_parts,
you need two sets of element_mapping, one set to address correspondences
between elements and design_parts, and another set to deal with the
correspondences between elements and located_parts?

Question 13
Is there any way to directly manage the correspondence between
instances of design_parts and instances of located_parts?
Answer to Q13
There is no direct relationship in the LPM between design_part and
located_part. The way to collect one or more instance of design_part
with one or more instances of located_part is to use the group entities.
In this case, an instance of 'group_of_design_data' would be placed in
the same group as an instance of 'group_of_physical_data' with a single
instance of design_part selected via 'select_design_item' and a single
instance of located_part selected via 'select_physical_item' (see pg 808
of SCI-P-268).
It was expected that any mapping between design and physical models
would be
done at the higher (assembly) level using the entity
assembly_relationship.
