In the EXPRESS file aic_topologically_bounded_surface, it contains statements like this:
SCHEMA aic_topologically_bounded_surface;
USE FROM geometry_schema ( axis2_placement_2d, axis2_placement_3d, bezier_curve, bezier_surface, b_spline_curve_with_knots, b_spline_surface_with_knots, ...);
ENTITY advanced_face
SUBTYPE OF ( face_surface );
WHERE
WR1 :
SIZEOF ([ 'AIC_TOPOLOGICALLY_BOUNDED_SURFACE.ELEMENTARY_SURFACE', 'AIC_TOPOLOGICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE', 'AIC_TOPOLOGICALLY_BOUNDED_SURFACE.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1;
...
Notice that the statement AIC_TOPOLOGICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE is technically incorrect:
The first part AIC_TOPOLOGICALLY_BOUNDED_SURFACE is actually the current schema's name.
The attribute B_SPLINE_SURFACE refers to geometry_schema.b_spline_surface.
The attribute geometry_schema.b_spline_surface is not directly stated in the USE FROM geometry_schema, it is actually imported through the USE FROM on the b_spline_curve_with_knots attribute, which is a SUBTYPE of b_spline_curve.
The definition of b_spline_curve_with_knots from geometry_schema:
ENTITY b_spline_curve_with_knots
SUBTYPE OF (b_spline_curve);
...
END_ENTITY;
This means that when someone USE FROM geometry_schema (b_spline_curve_with_knots);, the b_spline_curve attribute will also be imported.
The goal here is to:
Find out statements that use the current schema name as the namespace
** e.g. AIC_TOPOLOGICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE
Issue a warning to the user:
** e.g. "Do you mean GEOMETRY_SCHEMA.B_SPLINE_SURFACE? The attribute b_spline_curve comes from geometry_schema.
Once we have the warning, we can also automatically fix the problem with an .EXP file as output.
In the EXPRESS file
aic_topologically_bounded_surface
, it contains statements like this:Notice that the statement
AIC_TOPOLOGICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE
is technically incorrect:AIC_TOPOLOGICALLY_BOUNDED_SURFACE
is actually the current schema's name.B_SPLINE_SURFACE
refers togeometry_schema.b_spline_surface
.geometry_schema.b_spline_surface
is not directly stated in theUSE FROM geometry_schema
, it is actually imported through the USE FROM on theb_spline_curve_with_knots
attribute, which is a SUBTYPE ofb_spline_curve
.The definition of
b_spline_curve_with_knots
fromgeometry_schema
:This means that when someone
USE FROM geometry_schema (b_spline_curve_with_knots);
, theb_spline_curve
attribute will also be imported.The goal here is to:
AIC_TOPOLOGICALLY_BOUNDED_SURFACE.B_SPLINE_SURFACE
GEOMETRY_SCHEMA.B_SPLINE_SURFACE
? The attributeb_spline_curve
comes fromgeometry_schema
.Once we have the warning, we can also automatically fix the problem with an .EXP file as output.
FYI @trthurman @stuartgalt