Home

Assembly Modeling


Classes

class  asm_cleanup_options
 Class object to encapsulate requests for optional behaviors when cleaning up handle objects. More...
class  asm_get_options
 Provides a data structure for passing optional arguments to assembly modeling "get" commands. More...
class  asm_list_options
 Class object to encapsulate requests for optional behaviors of assembly modeling list objects. More...
class  asm_model
 Class object to represent an assembly or part model within assembly modeling. More...
class  asm_model_entity_mgr
 Interface class to wrap customer "part model" and "assembly model" objects. More...
class  asm_model_holder
 Holds a pointer to an asm_model. More...
class  asm_model_info
 Structure to contain information about an assembly modeling model. More...
class  asm_model_list
 Implements a variable length list of assembly models with set and index behavior and optional holding and counting mechanisms. More...
class  asm_restore_options
  More...
class  asm_save_options
 options object for asmi_save_model_list() More...
class  asmi_model_save_entities_options
 Specifies options for using asmi_model_save_entities. More...
class  component_entity_handle
 Assembly modeling proxy for the occurrence of an ENTITY within an assembly component. More...
class  component_entity_handle_holder
 Holds a pointer to a component_entity_handle. More...
class  component_entity_handle_list
 Implements a variable length list of component entity handles with set and index behavior and optional holding and counting mechanisms. More...
class  component_handle
 Assembly modeling proxy for an assembly component. More...
class  component_handle_holder
 Holds a pointer to an component_handle. More...
class  component_handle_list
 Implements a variable length list of component handles with set and index behavior and optional holding and counting mechanisms. More...
class  default_entity_mgr
 Concrete entity manager class that simply wraps an ENTITY_LIST. More...
class  default_entity_mgr_factory
 Concrete entity manager factory class for creating default_entity_mgr objects. More...
class  entity_handle_holder
 Holds a pointer to an entity_handle. More...
class  entity_handle_list
 Implements a variable length list of entity handles with set and index behavior and optional holding and counting mechanisms. More...
class  entity_mgr_factory
 Abstract class from which customers derive factory objects to create entity manager sub-class objects. More...

Defines

#define API_MODEL_BEGIN(_model_)   asm_info this_asm_info( _model_); API_BEGIN asm_model_entity_mgr* mgr = (_model_)->mgr();
 
#define API_MODEL_END(_event_type_)   API_END this_asm_info.end( result, _event_type_);
 
#define API_MODEL_END2(_event_type_, _event_info_)   API_END this_asm_info.end( result, _event_type_, _event_info_);
 
#define ASM_END   EXCEPTION_CATCH_FALSE status = resignal_no; EXCEPTION_END_NO_RESIGNAL outcome result(status);
 
#define ASM_VERS_BEGIN(opts)   int status = 0; EXCEPTION_BEGIN ALGORITHMIC_VERSION_BLOCK(opts ? &opts->get_version() : NULL); EXCEPTION_TRY
 
#define MODEL_BEGIN(_model_)   asm_info this_asm_info( _model_); outcome result; EXCEPTION_BEGIN asm_model_entity_mgr* mgr = (_model_)->mgr(); EXCEPTION_TRY
 Make model active.
#define MODEL_END(_event_type_)   EXCEPTION_CATCH_FALSE result = outcome(resignal_no); EXCEPTION_END_NO_RESIGNAL this_asm_info.end( result, _event_type_ );
 
#define MODEL_END2(_event_type_, _event_info_)   EXCEPTION_CATCH_FALSE result = outcome(resignal_no); EXCEPTION_END_NO_RESIGNAL this_asm_info.end( result, _event_type_, _event_info_ );
 

Typedefs

typedef asm_property_options asm_options
 

Enumerations

enum  asm_event_type
 Enumeration to indicate the degree of change which occurred to entities within a model during a MODEL_BEGIN/MODEL_END block. More...
enum  asm_get_request
 Specifier for which types of nodes should be walked in a request on a tree. More...
enum  asm_hold_state
 Enumeration to indicate whether a list of pointers to use-counted objects holds those objects by incrementing their use counts. More...

Functions

outcome api_asm_assembly_get_owning_model (const ASM_ASSEMBLY *assembly, asm_model *&model, AcisOptions *ao=NULL)
 Returns the model that owns an assembly.
outcome api_asm_component_add_property (component_handle *component, ATTRIB *prop, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Adds a property to the specified component.
outcome api_asm_component_get_property_owner (component_handle *comp, ATTRIB_COMPONENT_PROP_OWNER *&owner_attrib, logical create_if_absent, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Finds the component property-owner attribute in a specific model that modifies a specific component.
outcome api_asm_component_has_property (component_handle *component, int attrib_type, ATTRIB *&prop, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Determines if a property of the specified type has been added to the specified component.
outcome api_asm_entity_handle_get_ptr (entity_handle *handle, ENTITY *&ent, AcisOptions *ao=NULL)
 Returns the ENTITY associated with an entity handle.
outcome api_asm_model_find_components_with_property (const asm_model *model, int attrib_type, component_handle_list &prop_comps, AcisOptions *ao=NULL)
 Returns a list of all components of the specified model that have a given property.
outcome api_asm_model_get_entity_handle (ENTITY *ent, asm_model *owning_model, entity_handle *&handle, logical check_entity_owner, AcisOptions *ao=NULL)
 Returns the entity handle associated with an ENTITY.
outcome api_asm_model_get_owned_property_owners (const asm_model *model, ENTITY_LIST &prop_atts, AcisOptions *ao=NULL)
 Returns the component property-owner attributes that are owned by the specified model.
outcome api_asm_prune_assembly_history (HISTORY_STREAM *hs, logical &cleared_history, AcisOptions *ao=NULL)
 Prunes a history stream at any delta states which contains ASM_ASSEMBLY bulletins.
outcome asmi_check_model (const asm_model *given_asm_model, error_info *&return_err, AcisOptions *ao=NULL)
 Checks the consistency of an asm_model.
outcome asmi_cleanup (asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes all unneeded model and handle objects.
outcome asmi_cleanup_handles (asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes all unneeded handle objects.
outcome asmi_cleanup_models (AcisOptions *ao=NULL)
 Deletes all unneeded model objects.
outcome asmi_component_entity_handle_decompose (component_entity_handle *comp_ent, component_handle *&comp, entity_handle *&ent, AcisOptions *ao=NULL)
 Returns the entity and component handles corresponding to a component entity.
outcome asmi_component_find_color (component_handle *component, rgb_color &color, logical &found, AcisOptions *ao=NULL)
 Gets the highest priority color property affecting a component of an assembly.
outcome asmi_component_find_name (component_handle *component, const wchar_t *&name, AcisOptions *ao=NULL)
 Finds the name of the specified component in the assembly model.
outcome asmi_component_find_next_property (component_handle *component, int attrib_type, entity_handle *start_attrib, entity_handle *&the_property, AcisOptions *ao=NULL)
 Searches an assembly tree for the next highest priority property attribute, of the specified type, that modifies a component of an assembly.
outcome asmi_component_find_property (component_handle *component, int attrib_type, entity_handle *&the_property, AcisOptions *ao=NULL)
 Searches an assembly tree for the highest priority property attribute, of the specified type, that modifies a component of an assembly.
outcome asmi_component_find_transparency (component_handle *component, double &transparency, AcisOptions *ao=NULL)
 Gets the highest priority transparency property affecting a component of an assembly.
outcome asmi_component_get_box (component_handle const *component, SPAbox &box, SPAboxing_options *boxing_opts=NULL, AcisOptions *ao=NULL)
 Returns the box of a component of an assembly in the context of the assembly's root model.
outcome asmi_component_get_component_entities (component_handle *comp, component_entity_handle_list &comp_ent_list, AcisOptions *ao=NULL)
 Returns a list of component-entity handles corresponding to the top-level entities of a component.
outcome asmi_component_get_entities (component_handle const *component, entity_handle_list &ents, AcisOptions *ao=NULL)
 Returns a list of entity handles for the part-modeling entities contained within a component's model.
outcome asmi_component_get_parent (component_handle *component, component_handle *&parent, AcisOptions *ao=NULL)
 Returns the parent component of a specified component.
outcome asmi_component_get_path (component_handle const *component, asm_model *&root_model, entity_handle_list &model_refs, AcisOptions *ao=NULL)
 Returns the path of model references, through the folded assembly tree, that corresponds to a particular component.
outcome asmi_component_get_property_owners (const component_handle *component, entity_handle_list &prop_atts, AcisOptions *ao=NULL)
 Returns all of the component property-owner attributes that modify a specific component.
outcome asmi_component_get_relative_transform (component_handle const *origin_comp, component_handle const *target_comp, SPAtransf &relative_transf, logical include_units_rescaling, AcisOptions *ao=NULL)
 Returns the relative transform between two components of an assembly.
outcome asmi_component_get_root_model (component_handle *component, asm_model *&root_model, AcisOptions *ao=NULL)
 Returns the root model of a specified component.
outcome asmi_component_get_sub_components (const component_handle *component, asm_get_request which_components, logical include_suppressed, component_handle_list &sub_components, AcisOptions *ao=NULL)
 Returns a list of the sub-components of a component of a model, by walking the underlying model's assembly tree.
outcome asmi_component_get_transform (component_handle const *component, SPAtransf &component_transf, logical include_units_rescaling, AcisOptions *ao=NULL)
 Returns the total transform that positions and orients a component within the root assembly.
outcome asmi_component_get_unmodified_model (component_handle const *component, asm_model *&model, AcisOptions *ao=NULL)
 Returns a pointer to the raw end model associated with a component.
outcome asmi_component_get_unmodified_model (component_handle const *component, asm_model *&model, logical &is_modified, AcisOptions *ao=NULL)
 Returns a pointer to the raw end model associated with a component.
outcome asmi_component_has_color_modifications (component_handle *component, logical &has_child_modifications, logical &has_component_modifications, logical &has_parent_modifications, AcisOptions *ao=NULL)
 Determines if there are color properties that affect the specified component of an assembly model.
outcome asmi_component_has_hiding_modifications (component_handle *component, logical &has_child_modifications, logical &has_component_modifications, logical &has_parent_modifications, AcisOptions *ao=NULL)
 Determines if there are properties that hide the specified component of an assembly model.
outcome asmi_component_has_material_modifications (component_handle *component, logical &has_child_modifications, logical &has_component_modifications, logical &has_parent_modifications, AcisOptions *ao=NULL)
 Determines if there are material properties which affect the specified component in the assembly model.
outcome asmi_component_has_physical_modifications (component_handle *component, logical &has_child_modifications, logical &has_component_modifications, logical &has_parent_modifications, AcisOptions *ao=NULL)
 Determines if there are physical properties (such as suppression) that affect the specified component of an assembly model.
outcome asmi_component_has_property_modifications (component_handle *component, int attrib_type, logical &has_child_modifications, logical &has_component_modifications, logical &has_parent_modifications, AcisOptions *ao=NULL)
 Determines if there are property attributes, of the specified type, that affect the specified component of an assembly model.
outcome asmi_component_hide (component_handle *component, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Hides the specified component within an assembly model.
outcome asmi_component_is_hidden (component_handle *component, logical &is_hidden, AcisOptions *ao=NULL)
 Determines if the specified component is hidden by any property in its owning model's assembly tree.
outcome asmi_component_is_model_modified (component_handle const *component, logical &is_modified, AcisOptions *ao=NULL)
 Queries whether a component has been modified by properties applied higher in the assembly tree.
outcome asmi_component_is_suppressed (component_handle *component, logical &is_suppressed, AcisOptions *ao=NULL)
 Determines if the specified component is suppressed by any property in its owning model's assembly tree.
outcome asmi_component_mass_props (component_handle const *component, mass_props &mp, mass_props_options *mpo=NULL, AcisOptions *ao=NULL)
 Determines the mass properties of a component.
outcome asmi_component_remove_color (component_handle *component, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Removes the assembly-level color property of the specified component within an assembly.
outcome asmi_component_set_color (component_handle *component, rgb_color &color, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Sets the color at the assembly level of the specified component within an assembly.
outcome asmi_component_set_name (component_handle *component, const wchar_t *name, AcisOptions *ao=NULL)
 Sets the name of the specified component in the assembly model.
outcome asmi_component_set_transparency (component_handle *component, double transparency, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Sets the transparency of the specified component of an assembly model.
outcome asmi_component_suppress (component_handle *component, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Suppresses the specified component of an assembly model.
outcome asmi_component_unhide (component_handle *component, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Removes the hide property from the specified component of an assembly model.
outcome asmi_component_unsuppress (component_handle *component, asm_property_options *asmo=NULL, AcisOptions *ao=NULL)
 Removes the suppression property from the specified component of an assembly model.
outcome asmi_entity_handle_list_get_live_entities (entity_handle_list const &ent_handles, ENTITY_LIST &live_ent_list, AcisOptions *ao=NULL)
 Returns ENTITY_LIST containing pointers to live entities associated with entity_handle_list.
outcome asmi_get_entity_mgr_factory (entity_mgr_factory *&factory, AcisOptions *ao=NULL)
 Gets a pointer to the globally registered entity manager factory.
outcome asmi_get_models_which_share_history (asm_model *this_model, asm_model_list &sharing_models, AcisOptions *ao=NULL)
 Returns a list of all models whose entity managers are bound to the same history stream as this model's entity manager.
outcome asmi_model_add_model_ref (asm_model *assembly_model, SPAtransf &transform, asm_model *referenced_model, entity_handle *&model_ref, AcisOptions *ao=NULL)
 Creates a new model reference object and adds it to an assembly model.
outcome asmi_model_cleanup (asm_model_list &model_list, asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes a list of model objects and their handle objects, if unneeded.
outcome asmi_model_cleanup (asm_model *&model, asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes a model object and its handle objects, if unneeded.
outcome asmi_model_cleanup_handles (asm_model_list &model_list, asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes all unneeded handle objects belonging to a models in a list.
outcome asmi_model_cleanup_handles (asm_model *model, asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes all unneeded handle objects belonging to a model.
outcome asmi_model_cleanup_model (asm_model_list &model_list, AcisOptions *ao=NULL)
 Deletes a list of model objects, if they are unneeded.
outcome asmi_model_cleanup_model (asm_model *&model, AcisOptions *ao=NULL)
 Deletes a model object, if it is unneeded.
outcome asmi_model_cleanup_tree (asm_model_list &model_list, logical force_clear, asm_cleanup_options const *copts=NULL, AcisOptions *ao=NULL)
 Deletes all sub-models of a list of model objects and their handle objects, if unneeded.
outcome asmi_model_create (asm_model_info &model_info, asm_model *&new_model, AcisOptions *ao=NULL)
 Creates a new asm_model object that wraps an asm_model_entity_mgr provided by the globally registered entity_mgr_factory.
outcome asmi_model_create (asm_model_entity_mgr *mgr, logical create_assembly, asm_model *&new_model, AcisOptions *ao=NULL)
 Creates a new asm_model object that wraps an asm_model_entity_mgr.
outcome asmi_model_create_assembly (asm_model *model, AcisOptions *ao=NULL)
 Creates an assembly entity within a model, which changes the model from a part model into an assembly model.
outcome asmi_model_create_for_export (ENTITY_LIST &ents, asm_model_info &model_info, asm_model *&new_model, AcisOptions *ao=NULL)
 Creates a new asm_model object that wraps a new default_entity_mgr.
outcome asmi_model_del_assembly (asm_model *model, AcisOptions *ao=NULL)
 Loses the assembly entity within a model, which changes the model from an assembly model into a part model.
outcome asmi_model_get_component_entity_handle (component_handle *comp, entity_handle *ent, component_entity_handle *&comp_ent, AcisOptions *ao=NULL)
 Returns the component-entity handle corresponding to the specified component handle and entity handle.
outcome asmi_model_get_component_handle (entity_handle *model_ref, component_handle *&comp_handle, AcisOptions *ao=NULL)
 Returns a component handle corresponding to a single model reference in the assembly tree.
outcome asmi_model_get_component_handle (asm_model *comp_model, component_handle *&comp_handle, AcisOptions *ao=NULL)
 Returns a component handle corresponding to a single model in the assembly tree.
outcome asmi_model_get_component_handle (component_handle_list &components, component_handle *&comp_handle, AcisOptions *ao=NULL)
 Returns a component handle corresponding to a list (path) of components.
outcome asmi_model_get_component_handle (asm_model *root_model, entity_handle_list &model_refs, component_handle *&comp_handle, AcisOptions *ao=NULL)
 Returns a component handle corresponding to a list of model references that describe a path through the folded assembly tree.
outcome asmi_model_get_component_handle (entity_handle_list &model_refs, component_handle *&comp_handle, AcisOptions *ao=NULL)
 Returns a component handle corresponding to a list of model references that describe a path through the folded assembly tree.
outcome asmi_model_get_components (asm_model *model, component_handle_list &components, asm_get_options *get_opts=NULL, AcisOptions *ao=NULL)
 Returns a list of the components of a model by walking the model's assembly tree.
outcome asmi_model_get_entities (asm_model const *model, entity_handle_list &ents, AcisOptions *ao=NULL)
 Returns a list of entity handles for the top-level part-modeling entities contained within a model.
outcome asmi_model_get_entity_mgr (asm_model const *model, asm_model_entity_mgr *&mgr, AcisOptions *ao=NULL)
 Returns a pointer to the entity manager owned by a model.
outcome asmi_model_get_info (asm_model const *model, asm_model_info &model_info, AcisOptions *ao=NULL)
 Returns a model_info object containing information about a model.
outcome asmi_model_get_model_refs (asm_model const *assembly_model, entity_handle_list &model_ref_handles, AcisOptions *ao=NULL)
 Gets all immediate model references belonging to an assembly model.
outcome asmi_model_get_sub_models (asm_model *root_model, asm_get_request which_models, asm_model_list &models, AcisOptions *ao=NULL)
 Returns a list of all models upon which the input root model depends, that is, all models that appear below the root model in the assembly tree.
outcome asmi_model_has_assembly (asm_model *model, logical &answer, AcisOptions *ao=NULL)
 Queries a model to determine if it contains a live assembly.
outcome asmi_model_ref_apply_transform (entity_handle *model_ref_or_assembly, SPAtransf &transf, AcisOptions *ao=NULL)
 Applies a transform to a model reference or to all of the model references in an assembly.
outcome asmi_model_ref_get_model (entity_handle *model_ref, asm_model *&model, AcisOptions *ao=NULL)
 Returns the model to which the specified model reference refers.
outcome asmi_model_ref_get_owning_model (entity_handle *model_ref, asm_model *&model, AcisOptions *ao=NULL)
 Returns the model containing the assembly that owns a particular model reference.
outcome asmi_model_ref_get_transform (entity_handle *model_ref, SPAtransf &transf, AcisOptions *ao=NULL)
 Gets the transform associated with a model reference.
outcome asmi_model_ref_set_transform (entity_handle *model_ref, SPAtransf &transf, AcisOptions *ao=NULL)
 Resets the transform associated with a model reference.
outcome asmi_model_remove_model_ref (entity_handle *model_ref, AcisOptions *ao=NULL)
 Removes an existing model reference from its owning assembly and loses it.
outcome asmi_model_save_entities (asm_model *model, FILE *file_to_save_to, asmi_model_save_entities_options *opts=NULL, AcisOptions *ao=NULL)
 Saves an assembly model to a SAT or SAB file.
outcome asmi_property_remove (entity_handle *the_property, AcisOptions *ao=NULL)
 Removes a previously applied property attribute from its owner.
outcome asmi_raytest_ents (SPAposition const &ray_point, SPAunit_vector const &ray_direction, double ray_radius, int hits_wanted, asm_model_list const &targets, component_entity_handle_list &ceh_hit, double *&ray_parameters, AcisOptions *ao=NULL)
 Gets the list of component_entity_handles that are hit when a ray is fired at one or more assembly models.
outcome asmi_restore_model_list (FileInterface *file_if, asm_model_list &primary_models, asm_restore_options *ropts=NULL, AcisOptions *ao=NULL)
 Restores a list of asm_model objects using a FileInterface object.
outcome asmi_restore_model_list (FILE *file_ptr, logical text_mode, asm_model_list &primary_models, asm_restore_options *ropts=NULL, AcisOptions *ao=NULL)
 Restores one or more assembly models from a file.
outcome asmi_save_model_atomic (asm_model *model, asm_save_options *sopts=NULL, AcisOptions *ao=NULL)
 Saves an assembly model and its sub-models to multiple files in atomic mode.
outcome asmi_save_model_list (FileInterface *file_if, asm_model_list &primary_models, asm_save_options *sopts=NULL, AcisOptions *ao=NULL)
 Saves a list of asm_model objects to a single file using a FileInterface object.
outcome asmi_save_model_list (FILE *file_ptr, logical text_mode, asm_model_list &primary_models, asm_save_options *sopts=NULL, AcisOptions *ao=NULL)
 Saves a list of asm_model objects to a single file.
outcome asmi_set_entity_mgr_factory (entity_mgr_factory *&factory, AcisOptions *ao=NULL)
 Resets the globally registered entity manager factory.
logical has_assembly (asm_model *model)
 Queries a model to determine if it contains a live assembly.

Define Documentation

#define API_MODEL_BEGIN ( _model_   )     asm_info this_asm_info( _model_); API_BEGIN asm_model_entity_mgr* mgr = (_model_)->mgr();

#define API_MODEL_END ( _event_type_   )     API_END this_asm_info.end( result, _event_type_);

#define API_MODEL_END2 ( _event_type_,
_event_info_   )     API_END this_asm_info.end( result, _event_type_, _event_info_);

#define ASM_END   EXCEPTION_CATCH_FALSE status = resignal_no; EXCEPTION_END_NO_RESIGNAL outcome result(status);

#define ASM_VERS_BEGIN ( opts   )     int status = 0; EXCEPTION_BEGIN ALGORITHMIC_VERSION_BLOCK(opts ? &opts->get_version() : NULL); EXCEPTION_TRY

#define MODEL_BEGIN ( _model_   )     asm_info this_asm_info( _model_); outcome result; EXCEPTION_BEGIN asm_model_entity_mgr* mgr = (_model_)->mgr(); EXCEPTION_TRY

Make model active.

#define MODEL_END ( _event_type_   )     EXCEPTION_CATCH_FALSE result = outcome(resignal_no); EXCEPTION_END_NO_RESIGNAL this_asm_info.end( result, _event_type_ );

#define MODEL_END2 ( _event_type_,
_event_info_   )     EXCEPTION_CATCH_FALSE result = outcome(resignal_no); EXCEPTION_END_NO_RESIGNAL this_asm_info.end( result, _event_type_, _event_info_ );


Typedef Documentation

typedef asm_property_options asm_options


Enumeration Type Documentation

Enumeration to indicate the degree of change which occurred to entities within a model during a MODEL_BEGIN/MODEL_END block.


Role: asm_event_type is an enumerated type used by MODEL_END and API_MODEL_END to indicate the type of change that was made to entities in a model while it was active. Only the most severe type of change should be reported.

Parameters:
ASM_BREP_GEOM_CHANGE indicates that a change occurred to entities within the model that affects the model's physical properties (e.g. mass properties). An example of an action which would require this notification would be performing a Boolean operation on an entity within the model.
ASM_COMP_GEOM_CHANGE indicates that a change occurred to the assembly structure of the model that affects the model's physical properties (e.g. mass properties). Examples would be: deleting the model's assembly; adding, deleting or moving model references owned by the assembly; or applying a physical property, such as suppression, in the assembly model.
ASM_BREP_RENDER_CHANGE indicates that a change occurred to entities within the model that affects the way the model is rendered, and that the change was not of type ASM_GEOM_CHANGE. An example of this would be applying a color to a body within the model.
ASM_COMP_RENDER_CHANGE indicates that a change occurred to the assembly that affects the way the model is rendered, and that the change was not of type ASM_GEOM_CHANGE. An example would be adding a color property to a component.
ASM_OTHER_CHANGE indicates that a change occurred to entities within the model (e.g. adding a name), but the the change was not of type ASM_BREP_GEOM_CHANGE, ASM_COMP_GEOM_CHANGE, ASM_BREP_RENDER_CHANGE, or ASM_COMP_RENDER_CHANGE. Examples would be adding a name to a component or adding a user attribute to a model.
ASM_NO_CHANGE indicates that no significant change to entities within the model occurred.

See also:
MODEL_BEGIN, MODEL_END, asm_model_entity_mgr

include <asm_event_type.hxx>

Specifier for which types of nodes should be walked in a request on a tree.

Parameters:
ASM_IMMEDIATE Immediate children of the specified node only. Does not include the specified node.
ASM_SUB All children of the specified node. Does not include the specified node.
ASM_ALL All children of the specified node, plus the specified node.
ASM_LEAF All children of the specified node which do not themselves have children. Includes the specified node if the specified node has no children (in this case, the specified node is the only leaf).

include <asm_api.hxx>

Enumeration to indicate whether a list of pointers to use-counted objects holds those objects by incrementing their use counts.


Role: asm_hold_state is an enumerated type used by asm_list_options to specify whether the list should hold a use count for its entries.

The class objects asm_model_list, entity_handle_list, component_handle_list, and component_entity_list have the ability to "hold" their entries, i.e. to increment the use counts of their entries. Whether or not a list is holding its entries is indicated by its hold state. If a list is holding its entries, their use count is incremented by one.

Parameters:
ASM_NO_HOLD indicates that the list does not hold its entries.
ASM_HOLD indicates that the list holds its entries.

See also:
asm_model_list, entity_handle_list, component_handle_list, component_entity_handle_list, asm_list_options

include <asm_list_opts.hxx>


Function Documentation

outcome api_asm_assembly_get_owning_model ( const ASM_ASSEMBLY assembly,
asm_model *&  model,
AcisOptions ao = NULL 
)

Returns the model that owns an assembly.



Effect: Read only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
assembly assembly whose owning model is returned.
model model that owns the assembly.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome api_asm_component_add_property ( component_handle component,
ATTRIB prop,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Adds a property to the specified component.



Role: This API attaches a property attribute to an ATTRIB_COMPONENT_PROPERTY_OWNER entity, which points to the component, in an assembly model. The model in which the property will be added is specified by the asm_property_options object; by default the property is added in the component's root model.

If no ATTRIB_COMPONENT_PROPERTY_OWNER exists for the component, one is created. Refer to the section Properties in Assembly Modeling for more details. Note that adding a property to the root component of a part model (with no assembly) is not allowed. Because this is equivalent to modifying the part, part-modeling operations should be used to change the contents of the part instead. Modifying the root component of an assembly model is allowed, however.

Also note that the property attribute must be created and that this API must be called while the history stream of the model in which the property will be added is active. This is because this API attaches the property attribute to an entity in that model.

Errors: Non-existent component, root component of part model, property allocated in different model, incorrect history stream active.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component which is modifed by the property.
prop the property attribute being attached.
asmo options object - controls model in which property is applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome api_asm_component_get_property_owner ( component_handle comp,
ATTRIB_COMPONENT_PROP_OWNER *&  owner_attrib,
logical  create_if_absent,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Finds the component property-owner attribute in a specific model that modifies a specific component.



Role: If an attribute is not found, one will be created if the create_if_absent flag is TRUE. Note that owning_model is not necessarily the root model of the component; it can be above the component's root model in the assembly tree.

Errors: NULL component, NULL model, NULL assembly.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
comp model component to which the attribute refers.
owner_attrib the attribute.
create_if_absent create an attribute if one is not found.
asmo options object - controls model which owns property owner.
ao ACIS options.

include <asm_prop_api.hxx>

outcome api_asm_component_has_property ( component_handle component,
int  attrib_type,
ATTRIB *&  prop,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Determines if a property of the specified type has been added to the specified component.



Role: This API is used to determine if a property has been added to a component in a model by api_asm_component_add_property. It is intended to be called before calling api_asm_component_add_property to determine if a new property attribute needs to be added to a component, or if an existing one (returned by this routine) can be re-used.

The routine searches the ATTRIB_COMPONENT_PROPERTY_OWNER entity associated with the component in that model for an attribute of the specified type, and returns a pointer to the first such attribute that is found. If no ATTRIB_COMPONENT_PROPERTY_OWNER exists for the component in that model, or if the component does not have an attribute of the specified type attached, a NULL pointer is returned.

Note:  This API must be called while the history stream of the model being searched is active.

Errors: Incorrect history stream active.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component that the property modifies.
attrib_type the type ID of the attribute being sought.
prop the property attribute that was found, or NULL.
asmo options object - controls model in which property is applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome api_asm_entity_handle_get_ptr ( entity_handle handle,
ENTITY *&  ent,
AcisOptions ao = NULL 
)

Returns the ENTITY associated with an entity handle.



Errors: Non-existent handle.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
handle pointer to the entity handle.
ent pointer to the handle's entity.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome api_asm_model_find_components_with_property ( const asm_model model,
int  attrib_type,
component_handle_list prop_comps,
AcisOptions ao = NULL 
)

Returns a list of all components of the specified model that have a given property.



Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model whose components are examined for the given property.
attrib_type attribute type for the property being sought.
prop_comps list of components having the given property.
ao ACIS options.

include <asm_prop_api.hxx>

outcome api_asm_model_get_entity_handle ( ENTITY ent,
asm_model owning_model,
entity_handle *&  handle,
logical  check_entity_owner,
AcisOptions ao = NULL 
)

Returns the entity handle associated with an ENTITY.



Role: If the ENTITY does not have an associated entity handle, one will be created. Note that the ENTITY must be managed by the model's entity manager, either directly or through its owner.

Errors: Entity does not belong to model.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
ent pointer to the input entity.
owning_model model which owns the entity, and which manages the entity handle.
handle pointer to the entity's handle.
check_entity_owner Check if the entity belongs to the owning model before creating a handle. This parameter affects the performance of this API when the model has a large number of top level entities. Users of this API should always turn this check ON in Debug Builds. To obtain better performance in Release builds, they can turn it off they require.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome api_asm_model_get_owned_property_owners ( const asm_model model,
ENTITY_LIST prop_atts,
AcisOptions ao = NULL 
)

Returns the component property-owner attributes that are owned by the specified model.



Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model owning the property owners.
prop_atts list of component property-owner attributes owned by the model.
ao ACIS options.

include <asm_prop_api.hxx>

outcome api_asm_prune_assembly_history ( HISTORY_STREAM hs,
logical &  cleared_history,
AcisOptions ao = NULL 
)

Prunes a history stream at any delta states which contains ASM_ASSEMBLY bulletins.



Role: This routine searches all delta states of the input history stream for bulletins involving ASM_ASSEMBLY entities, and prunes the history stream at those delta states using api_prune_history.

It is provided for use by customers in overriding asm_model_entity_mgr::clear_vf, since a requirement of that method is that no such delta states survive the clear_vf operation. Note that this routine will clear the history stream (resulting in deletion of all entities in the stream) if ASM_ASSEMBLY bulletins have been added to the stream since the last "note state" operation. For this reason, we strongly recommend that api_note_state be called on the input stream before calling this routine.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
hs history stream to be pruned.
cleared_history returns TRUE if the history stream was cleared by this routine.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_check_model ( const asm_model given_asm_model,
error_info *&  return_err,
AcisOptions ao = NULL 
)

Checks the consistency of an asm_model.



Errors: None.

Effect: None.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
given_asm_model assembly model to be tested.
err error_info object returned.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_cleanup ( asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes all unneeded model and handle objects.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine (recursively) asks the global model manager to search for and delete any asm_model objects that are not being held. It also calls cleanup on each asm_model object, which removes unneeded handles from the model objects. This procedure is performed recursively until only objects that are being held remain. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_cleanup_handles ( asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes all unneeded handle objects.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine (recursively) asks the global model manager to call cleanup on each asm_model object, which removes unneeded handles from the model object. This procedure is performed recursively until only handles that are being held remain. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_cleanup_models ( AcisOptions ao = NULL  ) 

Deletes all unneeded model objects.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine (recursively) asks the global model manager to search for and delete any asm_model objects that are not being held. This procedure is performed recursively until only model objects that are being held remain. Note that this routine does not attempt to clean up handle objects.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_component_entity_handle_decompose ( component_entity_handle comp_ent,
component_handle *&  comp,
entity_handle *&  ent,
AcisOptions ao = NULL 
)

Returns the entity and component handles corresponding to a component entity.



Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
comp_ent the input component-entity.
comp the output component.
ent the output entity.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_find_color ( component_handle component,
rgb_color color,
logical &  found,
AcisOptions ao = NULL 
)

Gets the highest priority color property affecting a component of an assembly.



Role: This routine searches for all color properties which affect the input component. If one or more color properties are found, the color of the one with highest priority (see the technical article Properties in Assembly Modeling for a discussion of the priority rules) is returned and the found flag is set to TRUE. If no color properties are found, the default color is returned and the found flag is set to FALSE.

Errors: non-existent component

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
color rgb color.
found logical: TRUE if color property is found, otherwise FALSE.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_find_name ( component_handle component,
const wchar_t *&  name,
AcisOptions ao = NULL 
)

Finds the name of the specified component in the assembly model.



Errors: non-existent component, root component of part model, wrong history stream active.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component named component. &name component name.
ao ACIS options.

include <ga_asm_api.hxx>

outcome asmi_component_find_next_property ( component_handle component,
int  attrib_type,
entity_handle start_attrib,
entity_handle *&  the_property,
AcisOptions ao = NULL 
)

Searches an assembly tree for the next highest priority property attribute, of the specified type, that modifies a component of an assembly.



Errors: non-existent component.

Effect: Read-only

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component that is modified by the property to be found.
attrib_type type identifier for the attribute class. The routine will search for attributes of this type or derived from this type.
start_attrib entity handle for the attribute at which the search will continue.
the_property entity handle for the attribute of the specified type (or a sub-type).
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_find_property ( component_handle component,
int  attrib_type,
entity_handle *&  the_property,
AcisOptions ao = NULL 
)

Searches an assembly tree for the highest priority property attribute, of the specified type, that modifies a component of an assembly.



Errors: non-existent component.

Effect: Read-only

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component that is modified by the property to be found.
attrib_type type identifier for the attribute class. The routine will search for attributes of this type or derived from this type.
the_property entity handle for the attribute of the specified type (or a sub-type).
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_find_transparency ( component_handle component,
double &  transparency,
AcisOptions ao = NULL 
)

Gets the highest priority transparency property affecting a component of an assembly.



Role: The transparency value lies between 0 (transparent) and 1 (opaque).

Errors: Non-existent component

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
transparency transparency value (0 for transparent, 1 for opaque).
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_get_box ( component_handle const *  component,
SPAbox box,
SPAboxing_options boxing_opts = NULL,
AcisOptions ao = NULL 
)

Returns the box of a component of an assembly in the context of the assembly's root model.



Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose box is to be calculated.
box box of the component in the space of the assembly's root model.
boxing_opts boxing options.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_component_entities ( component_handle comp,
component_entity_handle_list comp_ent_list,
AcisOptions ao = NULL 
)

Returns a list of component-entity handles corresponding to the top-level entities of a component.



Role: This is a convenience routine which repackages the result of asmi_component_get_entities as a list of component_entity_handles.

Errors: NULL component_handle pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
comp component to be queried.
comp_ent_list the list of component_entity_handles.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_entities ( component_handle const *  component,
entity_handle_list ents,
AcisOptions ao = NULL 
)

Returns a list of entity handles for the part-modeling entities contained within a component's model.



Role: Does not include the model's assembly entity, if any, in the list. This is the preferred query function for client code to use in order to obtain the part data associated with a particular component within the assembly tree, as it correctly takes into account suppressed and over-ridden models.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose part modeling entities are to be found.
ents list of entity handles for the requested entities.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_parent ( component_handle component,
component_handle *&  parent,
AcisOptions ao = NULL 
)

Returns the parent component of a specified component.



Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
parent parent component. NULL if component is a root component, that is, if the component corresponds to a zero-length model-ref path.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_path ( component_handle const *  component,
asm_model *&  root_model,
entity_handle_list model_refs,
AcisOptions ao = NULL 
)

Returns the path of model references, through the folded assembly tree, that corresponds to a particular component.



Role: The path is returned as a root model at which the path begins, plus a list of model-reference entity handles. The intent of this routine is to allow client code to generate a unique identifier for the component, based on the combination of the model and the list of model references. No two components in memory will have identical paths, so customers may use identifiers for the elements of the path (assigned by the customer) to uniquely identify the corresponding components.

Note that the model-reference list is tip-to-tail, with the highest model reference in the tree (the one owned by the root model) appearing first. Also, note that the root model is only needed as an identifier for zero-length paths (with no model references). Such paths correspond to the root component of a model.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
root_model the root model of the component.
model_refs list of model-reference entity handles that specify the steps in the component's path through the folded assembly tree.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_property_owners ( const component_handle component,
entity_handle_list prop_atts,
AcisOptions ao = NULL 
)

Returns all of the component property-owner attributes that modify a specific component.



Errors: NULL component.

Effect: Read-only

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component for which to find property-owner attributes.
prop_atts prioritized handle list for the attributes found; property owners earlier in the list over-ride those later in the list.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_get_relative_transform ( component_handle const *  origin_comp,
component_handle const *  target_comp,
SPAtransf relative_transf,
logical  include_units_rescaling,
AcisOptions ao = NULL 
)

Returns the relative transform between two components of an assembly.



Role: An object at origin_comp that is transformed by the returned transform will appear at the same position and with the same orientation as target_comp in the coordinate system of origin_comp.

The units_rescale_factor argument determines if the transform includes the rescaling necessary to account for a difference in units between the component model and the root assembly.

Errors: Non-existent component(s).

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
origin_comp component that determines origination point of transformation.
target_comp component that determines target point of transformation.
relative_transf transform required to move from origin_comp to target_comp.
include_units_rescaling if TRUE, the returned transform includes the rescale factor implied by different units.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_root_model ( component_handle component,
asm_model *&  root_model,
AcisOptions ao = NULL 
)

Returns the root model of a specified component.



Role: This is the model corresponding to the root assembly in which the component occurs.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
root_model model corresponding to the component's root assembly.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_sub_components ( const component_handle component,
asm_get_request  which_components,
logical  include_suppressed,
component_handle_list sub_components,
AcisOptions ao = NULL 
)

Returns a list of the sub-components of a component of a model, by walking the underlying model's assembly tree.



Role: This is a preferred query function for client code to use to unfold the assembly tree, as it correctly takes into account suppressed and over-ridden models. An options object allows client code to specify which components are returned.

Note: The caller must specify which sub-components (for example, ASM_IMMEDIATE) should be returned.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose sub-components are to be found.
which_components specifies which components are to be returned.
include_suppressed if TRUE, suppression will be ignored when walking the model's assembly tree.
sub_components sub-components of the input component.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_transform ( component_handle const *  component,
SPAtransf component_transf,
logical  include_units_rescaling,
AcisOptions ao = NULL 
)

Returns the total transform that positions and orients a component within the root assembly.



Role: The units_rescale_factor argument determines if the transform includes the rescaling necessary to account for differences in units between the component model and the root assembly.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component being queried.
component_transf transform required to move component from the origin to its location within the root assembly.
include_units_rescaling if TRUE, returned transform includes the rescale factor implied by different units.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_unmodified_model ( component_handle const *  component,
asm_model *&  model,
AcisOptions ao = NULL 
)

Returns a pointer to the raw end model associated with a component.



Role: This routine returns a pointer to the raw end model of the component, that is, the model referenced by the last model reference in the component's model reference path. The (sub-)components of the queried component's raw end model might not correspond to the queried component's actual (sub-)components due to properties applied to the component or its sub-components at higher levels of the assembly tree. For example, if the front left wheel of a car were suppressed, the components of the actual front axle assembly (with only one wheel) would be different from the components of the raw front axle assembly (with two wheels).

This signature of the routine is much faster than the signature which returns an is_modified flag, because it does not have to scan the assembly tree for properties which might modify the component.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
model pointer to the component's raw end model.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_get_unmodified_model ( component_handle const *  component,
asm_model *&  model,
logical &  is_modified,
AcisOptions ao = NULL 
)

Returns a pointer to the raw end model associated with a component.



Role: This routine should be used with caution, since the (sub-)components of the queried component's raw end model might not correspond to the queried component's actual (sub-)components, due to properties applied to the component or its sub-components at higher levels of the assembly tree. For example, if the front left wheel of a car were suppressed, the components of the actual front axle assembly (with only one wheel) would be different from the components of the raw front axle assembly (with two wheels).

The intent of this routine is to aid customers translating into an assembly format that does not support the application of properties (such as suppression) to components from higher levels in the assembly tree. Such customers need to be able to query whether two components of the assembly are defined by exactly the same model data in order to share model data between instances. If the is_modified flag for a component's model is TRUE, then the translated component cannot share model data with any other translated component. If the is_modified flag will not be used by the caller, then the alternate signature of this routine (which omits the flag) should be used for performance reasons.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
model pointer to the component's raw end model.
is_modified if TRUE, then the component's model data is modified by properties applied higher in the assembly tree.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_has_color_modifications ( component_handle component,
logical &  has_child_modifications,
logical &  has_component_modifications,
logical &  has_parent_modifications,
AcisOptions ao = NULL 
)

Determines if there are color properties that affect the specified component of an assembly model.



Errors: non-existent component, root component of part model.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
has_child_modifications TRUE if one or more proper sub-components of the component are modified by one or more color properties owned by a model above the component's end model.
has_component_modifications TRUE if the component is modified by one or more color properties owned by a model above the component's end model.
has_parent_modifications TRUE if one or more parents of the component are modified by one or more color properties.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_has_hiding_modifications ( component_handle component,
logical &  has_child_modifications,
logical &  has_component_modifications,
logical &  has_parent_modifications,
AcisOptions ao = NULL 
)

Determines if there are properties that hide the specified component of an assembly model.



Errors: non-existent component, root component of part model.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
has_child_modifications TRUE if one or more proper sub-components of the component are hidden by one or more properties owned by a model above the component's end model.
has_component_modifications TRUE if the component is hidden by one or more properties owned by a model above the component's end model.
has_parent_modifications TRUE if one or more parents of the component are hidden by one or more properties.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_has_material_modifications ( component_handle component,
logical &  has_child_modifications,
logical &  has_component_modifications,
logical &  has_parent_modifications,
AcisOptions ao = NULL 
)

Determines if there are material properties which affect the specified component in the assembly model.



Errors: non-existent component, root component of part model.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
has_child_modifications TRUE if one or more proper sub-components of the component are modified by one or more material properties owned by a model above the component's end model.
has_component_modifications TRUE if the component is modified by one or more material properties owned by a model above the component's end model.
has_parent_modifications TRUE if one or more parents of the component are modified by one or more material properties.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_has_physical_modifications ( component_handle component,
logical &  has_child_modifications,
logical &  has_component_modifications,
logical &  has_parent_modifications,
AcisOptions ao = NULL 
)

Determines if there are physical properties (such as suppression) that affect the specified component of an assembly model.



Role: A physical property is one that changes one or more components of the assembly in such a way that the (un-instanced) B-Rep model equivalent to the assembly would be different.

Errors: non-existent component, root component of part model.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
has_child_modifications TRUE if one or more proper sub-components of the component are modified by one or more physical properties owned by a model above the component's end model.
has_component_modifications TRUE if the component is modified by one or more physical properties owned by a model above the component's end model.
has_parent_modifications TRUE if one or more parents of the component are modified by one or more physical properties.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_has_property_modifications ( component_handle component,
int  attrib_type,
logical &  has_child_modifications,
logical &  has_component_modifications,
logical &  has_parent_modifications,
AcisOptions ao = NULL 
)

Determines if there are property attributes, of the specified type, that affect the specified component of an assembly model.



Errors: non-existent component, root component of part model.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
attrib_type type identifier for the attribute class. The routine will search for attributes of this type or derived from this type.
has_child_modifications TRUE if one or more proper sub-components of the component are modified by one or more properties owned by a model above the component's end model.
has_component_modifications TRUE if the component is modified by one or more properties owned by a model above the component's end model.
has_parent_modifications TRUE if one or more parents of the component are modified by one or more properties.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_hide ( component_handle component,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Hides the specified component within an assembly model.



Errors: non-existent component, root component of part model.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be hidden.
asmo options object - controls model in which hiding is applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_is_hidden ( component_handle component,
logical &  is_hidden,
AcisOptions ao = NULL 
)

Determines if the specified component is hidden by any property in its owning model's assembly tree.



Role: This routine searches for any "hiding" properties which affect the input component. If one or more hiding properties are found, TRUE is returned. If no hiding properties are found, FALSE is returned.

Errors: non-existent component

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
is_hidden TRUE if component is hidden.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_is_model_modified ( component_handle const *  component,
logical &  is_modified,
AcisOptions ao = NULL 
)

Queries whether a component has been modified by properties applied higher in the assembly tree.



Role: Refer to the documentation of asmi_component_get_unmodified_model() for details.

Errors: Non-existent component.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be queried.
is_modified if TRUE, then the component's model data is modified by properties applied higher in the assembly tree.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_component_is_suppressed ( component_handle component,
logical &  is_suppressed,
AcisOptions ao = NULL 
)

Determines if the specified component is suppressed by any property in its owning model's assembly tree.



Role: This routine searches for any "suppress" properties which affect the input component. If one or more suppress properties are found, TRUE is returned. If no suppress properties are found, FALSE is returned.

Errors: non-existent component

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to query.
is_suppressed TRUE if component is suppressed.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_mass_props ( component_handle const *  component,
mass_props mp,
mass_props_options mpo = NULL,
AcisOptions ao = NULL 
)

Determines the mass properties of a component.



Role: This API finds the mass properties requested by the user. These may include the volume, center of gravity (centroid), inertia tensor, principal moments, and principal axes of the given component. Options controlling the calculation are specified by means of an (optional) mass_props_options object; the results are returned in the form of a mass_props object. Please refer to the documentation of these two classes for details on setting options and retrieving the calculated results, respectively.

When the mass_props_options argument is omitted, the following default behavior is followed:

1) projection-plane information is selected by the API;
2) volume, centroid, and inertia are all calculated;
3) the requested relative accuracy is one-percent;
4) sheets are treated as having zero thickness; and,
5) errors are thrown when voids or open, one-sided sheets are encountered.

The user should provide a mass_props_options object configured otherwise if some alternate behavior is preferred.

Errors: The pointer to a body is NULL or does not point to a BODY.  A zero-length normal is specified by the mpo argument.  A negative accuracy is requested by the mpo argument.  A negative sheet thickness is specified by the mpo argument.  A void or an open, single-sided sheet was encountered. [The user may avoid this type of error by calling mpo->set_one_sided_sheet_opt() with an argument of AS_2SIDED or AS_SOLID, as appropriate. Please see the documentation of this method for further details.]


Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be examined.
mp mass properties computed by the API.
mpo options object used to configure non-default behavior.
ao ACIS options.

include <intr_asm_api.hxx>

outcome asmi_component_remove_color ( component_handle component,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Removes the assembly-level color property of the specified component within an assembly.



Errors: non-existent component

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose color attribute is to be removed.
asmo options object - controls model in which color was applied.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_set_color ( component_handle component,
rgb_color color,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Sets the color at the assembly level of the specified component within an assembly.



Errors: non-existent component, root component of part model

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose color is to be set.
color rgb color.
asmo options object - controls model in which color is applied.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_set_name ( component_handle component,
const wchar_t *  name,
AcisOptions ao = NULL 
)

Sets the name of the specified component in the assembly model.



Errors: non-existent component, root component of part model, wrong history stream active.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be named.
name component name.
ao ACIS options.

include <ga_asm_api.hxx>

outcome asmi_component_set_transparency ( component_handle component,
double  transparency,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Sets the transparency of the specified component of an assembly model.



Role: The transparency value must be between 0 (transparent) and 1 (opaque).

Errors: non-existent component, root component of part model

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component whose transparency is to be set.
transparency transparency value (0 for transparent, 1 for opaque).
asmo options object - controls model in which transparency is applied.
ao ACIS options.

include <rh_asm_api.hxx>

outcome asmi_component_suppress ( component_handle component,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Suppresses the specified component of an assembly model.



Errors: non-existent component, root component of part model

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be suppressed.
asmo options object - controls model in which suppression is applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_unhide ( component_handle component,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Removes the hide property from the specified component of an assembly model.



Errors: non-existent component, root component of part model

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to be unhidden.
asmo options object - controls model in which hiding was applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_component_unsuppress ( component_handle component,
asm_property_options *  asmo = NULL,
AcisOptions ao = NULL 
)

Removes the suppression property from the specified component of an assembly model.



Errors: non-existent component

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
component component to have suppression removed.
asmo options object - controls model in which suppression was applied.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_entity_handle_list_get_live_entities ( entity_handle_list const &  ent_handles,
ENTITY_LIST live_ent_list,
AcisOptions ao = NULL 
)

Returns ENTITY_LIST containing pointers to live entities associated with entity_handle_list.



Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
ent_handles entity handle list from which you want to get live entity pointers.
live_ent_list list which will contain exactly the live entities associated with entity handles on the input list.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_get_entity_mgr_factory ( entity_mgr_factory *&  factory,
AcisOptions ao = NULL 
)

Gets a pointer to the globally registered entity manager factory.



Role: This function returns a pointer to the current globally registered entity manager factory (used to create entity managers during ASAT restore).

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
factory The currently registered entity_mgr_factory object.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_get_models_which_share_history ( asm_model this_model,
asm_model_list sharing_models,
AcisOptions ao = NULL 
)

Returns a list of all models whose entity managers are bound to the same history stream as this model's entity manager.



Role: Note that the input model is included in the list.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
this_model model to be tested for history sharing.
sharing_models list of models whose entity managers share this_model's entity manager's history stream, including this_model.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_add_model_ref ( asm_model assembly_model,
SPAtransf transform,
asm_model referenced_model,
entity_handle *&  model_ref,
AcisOptions ao = NULL 
)

Creates a new model reference object and adds it to an assembly model.



Role: The supplied transform determines the location and orientation of the model reference within the assembly, in the assembly model's coordinate system and units. This transform may only involve rotation and translation; reflection, shear, and scaling transforms are not valid.

Errors: owning_model not an assembly, invalid transform for assembly modeling.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
assembly_model assembly model to which the model reference will be added.
transform location and orientation of the model reference.
referenced_model the model to which the model reference refers.
model_ref entity_handle for the newly created ASM_MODEL_REF object.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_cleanup ( asm_model_list model_list,
asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes a list of model objects and their handle objects, if unneeded.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine tests each model object to see if it is being held. If it is not being held, the model object is deleted. If the model object is being held (and so is not deleted), the routine attempts to clean up the handles owned by that object. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_list list of models to be cleaned (models that are deleted are removed from the list).
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup ( asm_model *&  model,
asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes a model object and its handle objects, if unneeded.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine tests a single model object to see if it is being held. If it is not being held, the model object is deleted. If the model object is being held (and so is not deleted), the routine attempts to clean up the handles owned by that object. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be cleaned (is set to NULL if the model is deleted).
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup_handles ( asm_model_list model_list,
asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes all unneeded handle objects belonging to a models in a list.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine cleans up the handles associated with each model object in the list. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_list list of models to be cleaned.
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup_handles ( asm_model model,
asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes all unneeded handle objects belonging to a model.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine cleans up the handles associated with a single model object. An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be cleaned
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup_model ( asm_model_list model_list,
AcisOptions ao = NULL 
)

Deletes a list of model objects, if they are unneeded.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine tests each model object to see if it is being held. If it is not being held, the model object is deleted. Note that this routine does not attempt to clean up handle objects.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_list list of models to be cleaned (models that are deleted are removed from the list).
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup_model ( asm_model *&  model,
AcisOptions ao = NULL 
)

Deletes a model object, if it is unneeded.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine tests a single model object to see if it is being held. If it is not being held, the model object is deleted. Note that this routine does not attempt to clean up handle objects.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be cleaned (is set to NULL if the model is deleted).
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_cleanup_tree ( asm_model_list model_list,
logical  force_clear,
asm_cleanup_options const *  copts = NULL,
AcisOptions ao = NULL 
)

Deletes all sub-models of a list of model objects and their handle objects, if unneeded.



Role: An object is considered unneeded if it is not being held by any other object (see technical article on assembly-modeling use counting). This routine sets the input list to not hold the models in the list. It finds all sub-models of the models in the list (including the models in the list) tests each sub-model object to see if it is being held. If it is not being held, the (sub-)model object is deleted. If the model object is being held (and so is not deleted), the routine attempts to clean up the handles owned by that object.

If the force_clear flag is set to TRUE, the clear method is called on the entity managers of all the sub-models, even if the use count is not zero, and the asm_model objects are removed from the global model manager and put into a state that they will automatically be deleted (without a further call to cleanup) when their use count goes to zero.

An asm_cleanup_options object can be passed in to specify which types of handle are cleaned up. The default behavior is to clean all handle types.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_list list of models to be cleaned (models that are deleted are removed from the list).
force_clear logical to force associated entity managers to be cleared regardless of model use count.
copts cleanup options object, which determines which types of handle will be cleaned.
ao ACIS options.

include <asm_cleanup_api.hxx>

outcome asmi_model_create ( asm_model_info model_info,
asm_model *&  new_model,
AcisOptions ao = NULL 
)

Creates a new asm_model object that wraps an asm_model_entity_mgr provided by the globally registered entity_mgr_factory.



Role: Note that if model_info.model_has_asm is TRUE, a new assembly object will be automatically created and added to the model. A customer-specific factory can be globally registered by using asmi_set_entity_mgr_factory.

Errors: NULL input manager.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_info state information for the new model; used to create the entity manager. If model_info.model_has_asm is TRUE, an assembly object will be added to the model.
new_model pointer to the newly created model.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_create ( asm_model_entity_mgr mgr,
logical  create_assembly,
asm_model *&  new_model,
AcisOptions ao = NULL 
)

Creates a new asm_model object that wraps an asm_model_entity_mgr.



Errors: NULL input manager.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
mgr entity manager that will be bound to the model.
create_assembly if TRUE, an assembly entity will be automatically added to the new model.
new_model pointer to the newly created model.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_create_assembly ( asm_model model,
AcisOptions ao = NULL 
)

Creates an assembly entity within a model, which changes the model from a part model into an assembly model.



Errors: Model already has assembly or has no entity manager.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to which the assembly entity will be added.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_create_for_export ( ENTITY_LIST ents,
asm_model_info model_info,
asm_model *&  new_model,
AcisOptions ao = NULL 
)

Creates a new asm_model object that wraps a new default_entity_mgr.



Role: This function is intended for use by customers who have their own assembly modeling system and wish to export one of their assemblies into ASAT format. It creates a default_entity_mgr object which is bound to the history stream associated with the first entity in the ents list, or the default stream if there are no entities in the list. Or, if the first entity does not point to a history stream, it creates a new asm_model object which wraps the entity manager, and adds the entities from the ents list to the model.

The default entity manager is created with settings such that it owns neither its entities nor its associated history stream; this is so the customer's entities and/or stream will not be deleted during cleanup after the ASAT file has been written. Note that if model_info.model_has_asm is TRUE, a new assembly object will be automatically created and added to the model

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
ents list of top-level entities to be added to the model. Should not include an ASM_ASSEMBLY entity.
model_info state information for the new model used to create the entity manager. If model_info.model_has_asm is TRUE, an assembly object will be added to the model.
new_model pointer to the newly created model.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_del_assembly ( asm_model model,
AcisOptions ao = NULL 
)

Loses the assembly entity within a model, which changes the model from an assembly model into a part model.



Errors: Model has no entity manager.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model from which assembly entity will be removed.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_entity_handle ( component_handle comp,
entity_handle ent,
component_entity_handle *&  comp_ent,
AcisOptions ao = NULL 
)

Returns the component-entity handle corresponding to the specified component handle and entity handle.



Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
comp the input component.
ent the input entity.
comp_ent the output component-entity.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_handle ( entity_handle model_ref,
component_handle *&  comp_handle,
AcisOptions ao = NULL 
)

Returns a component handle corresponding to a single model reference in the assembly tree.



Role: This corresponds to a length-one path in the folded assembly tree.

CAUTION: This routine is intended to be used only by experts working with the folded assembly tree (for example, in a translation application). Most customers should instead use the component interface (for example, asmi_model_get_components) to walk the assembly tree.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref a single model-reference entity handle.
comp_handle pointer to the resulting component's handle.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_handle ( asm_model comp_model,
component_handle *&  comp_handle,
AcisOptions ao = NULL 
)

Returns a component handle corresponding to a single model in the assembly tree.



Role: This corresponds to a zero-length path in the folded assembly tree.

CAUTION: This routine is intended to be used only by experts working with the folded assembly tree (for example, in a translation application). Most customers should instead use the component interface (for example, asmi_model_get_components) to walk the assembly tree.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
comp_model list of model-reference entity handles.
comp_handle pointer to the resulting component's handle.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_handle ( component_handle_list components,
component_handle *&  comp_handle,
AcisOptions ao = NULL 
)

Returns a component handle corresponding to a list (path) of components.



Role: Because a component is just a path through the folded (model reference) assembly tree, a tip-to-tail list of components (path) can be concatenated to form a new component (path). The path list must be tip-to-tail, with the highest (nearest the root of the assembly tree) model reference appearing first.

Errors: Non-existent component.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
components ordered list of component handles.
comp_handle pointer to the resulting component's handle.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_handle ( asm_model root_model,
entity_handle_list model_refs,
component_handle *&  comp_handle,
AcisOptions ao = NULL 
)

Returns a component handle corresponding to a list of model references that describe a path through the folded assembly tree.



Role: This is a convenience routine, for use when it is unknown whether the model reference list is empty. The path list must be tip-to-tail, with the highest (nearest the root of the assembly tree) model reference appearing first. Note that it is not necessary to specify the root model of the path, since it is the owner of the first model reference in the list. If the path is zero-length (corresponding to a single model in the assembly), then the alternate signature of this routine that takes an asm_model pointer should instead be used.

CAUTION: This routine is intended to be used only by experts working with the folded assembly tree (for example, in a translation application). Most customers should instead use the component interface (for example, asmi_model_get_components) to walk the assembly tree.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
root_model start of path.
model_refs list of model-reference entity handles.
comp_handle pointer to the resulting component's handle.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_component_handle ( entity_handle_list model_refs,
component_handle *&  comp_handle,
AcisOptions ao = NULL 
)

Returns a component handle corresponding to a list of model references that describe a path through the folded assembly tree.



Role: The path list must be tip-to-tail, with the highest (nearest the root of the assembly tree) model reference appearing first. Note that it is not necessary to specify the root model of the path, since it is the owner of the first model reference in the list. If the path is zero-length (corresponding to a single model in the assembly), then the alternate signature of this routine that takes an asm_model pointer should be used.

CAUTION: This routine is intended to be used only by experts working with the folded assembly tree (for example, in a translation application). Most customers should instead use the component interface (for example, asmi_model_get_components) to walk the assembly tree.

Errors: None.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_refs list of model-reference entity handles.
comp_handle pointer to the resulting component's handle.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_components ( asm_model model,
component_handle_list components,
asm_get_options get_opts = NULL,
AcisOptions ao = NULL 
)

Returns a list of the components of a model by walking the model's assembly tree.



Role: This is a preferred query function for client code to use to unfold the assembly tree, as it correctly takes into account suppressed and over-ridden models. An options object allows client code to specify which components are returned. The default behavior is ASM_ALL, which includes all components, including the root component (corresponding to the model object).

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model whose components are to be found.
components returned list of entity_handles for components of the model.
get_opts options object that specifies which components are to be returned.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_entities ( asm_model const *  model,
entity_handle_list ents,
AcisOptions ao = NULL 
)

Returns a list of entity handles for the top-level part-modeling entities contained within a model.



Role: Does not include the model's assembly entity, if any, in the list. This query does not take into account suppressed and over-ridden models.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be queried.
ents list of entity handles of the requested entities.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_entity_mgr ( asm_model const *  model,
asm_model_entity_mgr *&  mgr,
AcisOptions ao = NULL 
)

Returns a pointer to the entity manager owned by a model.



Role: The intent of this ASM routine is to allow customer code to determine which customer part is bound to a model.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be queried.
mgr pointer to the model's entity manager.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_info ( asm_model const *  model,
asm_model_info model_info,
AcisOptions ao = NULL 
)

Returns a model_info object containing information about a model.



Role: This information includes units, tolerances, and a customer ID number.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model to be queried.
model_info object in which returned model information will be stored by the routine.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_model_refs ( asm_model const *  assembly_model,
entity_handle_list model_ref_handles,
AcisOptions ao = NULL 
)

Gets all immediate model references belonging to an assembly model.



Role: Does not search deeper into the tree for sub-references. Ignores suppression and overrides. This routine will generally be called when translating the assembly into another format.

Errors: owning_model does not have an assembly.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
assembly_model assembly model that will be queried for its model references.
model_ref_handles list of entity handles corresponding to the model references.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_get_sub_models ( asm_model root_model,
asm_get_request  which_models,
asm_model_list models,
AcisOptions ao = NULL 
)

Returns a list of all models upon which the input root model depends, that is, all models that appear below the root model in the assembly tree.



Role: The intent of this routine is to allow the user to find all the models that are involved in the definition of an assembly, so that, for example, a global assembly state can be noted (by noting each of the models' state). The asm_get_request enumeration determines which models are returned. The value ASM_ALL specifies that all sub-models of the root_model, including itself, be returned; ASM_SUB specifies all proper sub-models of the root_model; ASM_IMMEDIATE specifies only the proper sub-models referenced by the root's assembly model; ASM_LEAF specifies all sub-models that are not assembly models (if root_model is not an assembly, the root model is returned).

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
root_model root model to be queried.
which_models specifies which models are to be returned.
models returned list of models upon which the root depends.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_has_assembly ( asm_model model,
logical &  answer,
AcisOptions ao = NULL 
)

Queries a model to determine if it contains a live assembly.



Errors: No entity manager.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model which is queried to determine if it owns an assembly entity.
answer result of the query.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_ref_apply_transform ( entity_handle model_ref_or_assembly,
SPAtransf transf,
AcisOptions ao = NULL 
)

Applies a transform to a model reference or to all of the model references in an assembly.



Role: The composition of the supplied transform with the existing transform determines the location and orientation of the model reference within the assembly, in the assembly model's coordinate system and units. This transform may only involve rotation and translation; reflection, shear, and scaling transforms are not valid.

Errors: Non-existent entity, invalid transform for assembly modeling.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref_or_assembly entity handle for the model reference or the assembly containing the model references to which the transform will be applied.
transf the transform to be applied.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_ref_get_model ( entity_handle model_ref,
asm_model *&  model,
AcisOptions ao = NULL 
)

Returns the model to which the specified model reference refers.



Errors: Non-existent model reference.

Effect: Read-only

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref entity handle for the model reference whose model is being requested.
model model referred to by model_ref.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_ref_get_owning_model ( entity_handle model_ref,
asm_model *&  model,
AcisOptions ao = NULL 
)

Returns the model containing the assembly that owns a particular model reference.



Errors: Non-existent model reference.

Effect: Read-only

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref entity handle for the model reference whose owning model is being requested.
model model owning the assembly containing model_ref.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_ref_get_transform ( entity_handle model_ref,
SPAtransf transf,
AcisOptions ao = NULL 
)

Gets the transform associated with a model reference.



Errors: Non-existent model reference.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref entity handle for the model reference to be queried.
transf the model reference's transform.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_ref_set_transform ( entity_handle model_ref,
SPAtransf transf,
AcisOptions ao = NULL 
)

Resets the transform associated with a model reference.



Role: The supplied transform determines the location and orientation of the model reference within the assembly, in the assembly model's coordinate system and units. This transform may only involve rotation and translation; reflection, shear, and scaling transforms are not valid.

Errors: Non-existent model reference, invalid transform for assembly modeling.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref entity handle for the model reference whose transform will be reset.
transf the new transform.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_remove_model_ref ( entity_handle model_ref,
AcisOptions ao = NULL 
)

Removes an existing model reference from its owning assembly and loses it.



Errors: owning_model not an assembly; non-existent model_ref.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model_ref entity_handle of the ASM_MODEL_REF object that is to be removed.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_model_save_entities ( asm_model model,
FILE *  file_to_save_to,
asmi_model_save_entities_options opts = NULL,
AcisOptions ao = NULL 
)

Saves an assembly model to a SAT or SAB file.



Role: This function saves the entities from an assembly model. It does not store any assembly related information: for example, how many times each ENTITY is used in the model, or which transforms are associated with each model reference. It is most useful with part models; use with assembly models is not recommended.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model model with entities to be stored.
file_to_save_to file handle where you want the entities to be saved.
opts options object for controlling whether you are allowed to save a model with an assembly (which could destroy information), and whether text or binary mode is used.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_property_remove ( entity_handle the_property,
AcisOptions ao = NULL 
)

Removes a previously applied property attribute from its owner.



Role: This routine unhooks and loses the attribute. If the property being removed is the last attribute attached to the property-owner attribute, the property-owner attribute is also unhooked and lost.

Errors: non-existent component entity.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
the_property entity handle for the attribute that is to be removed.
ao ACIS options.

include <asm_prop_api.hxx>

outcome asmi_raytest_ents ( SPAposition const &  ray_point,
SPAunit_vector const &  ray_direction,
double  ray_radius,
int  hits_wanted,
asm_model_list const &  targets,
component_entity_handle_list ceh_hit,
double *&  ray_parameters,
AcisOptions ao = NULL 
)

Gets the list of component_entity_handles that are hit when a ray is fired at one or more assembly models.



Role: This assembly API fires a ray at an array of assembly models, already selected in some way, from the given ray point in the given ray direction with the given ray radius. It returns a list that contains the n component_entity_handles nearest the ray point (where n is the number of hits recorded) and an array that holds the n parameter values of the points along the ray. Only component_entity_handles in the forward direction along the ray can be hit. hits_wanted indicates the maximum number of hits to return. To return all hits, specify hits_wanted as zero.

If ray_parameters is not NULL, it must point to an array of doubles large enough to hold all of the returned parameters. When ray_parameters is specified as NULL, an array large enough to hold the returned parameters is allocated and its address is returned. The caller is responsible for deleting the array.

When several connected component_entity_handles are wanted, for example, all edges of a face, pick one component_entity_handle, for instance, the face, and the others are found by following the model pointers.

If the ray, that is, the straight line from a given point and a given direction, hits the face at a point at least the length of the ray radius from any edge or vertex of the face, it returns the face. If it hits an edge of a face or passes within ray radius of the edge, it returns the edge. If it passes within ray radius of a vertex, it returns the vertex.

If the ray lies along the surface (planar or ruled) of a face and crosses the interior of the face, the edges or vertices of the face hit by the ray are returned. If there are no edges or vertices, the face is returned.

The option ray_test_control influences the behavior of the API. For details on the various values the option can take and the corresponding API behavior, refer to the documentation of the ray_test_control option.

To pick edges or vertices, it is often helpful to increase the ray radius, but to pick a face, keep the ray radius small to avoid picking edges or vertices of the face.

If the ray hits an entity more than once, only the hit at the smallest ray parameter is returned.

A call to this assembly API will cause bounding boxes to be computed, causing a model change and the creation of a bulletin board. To make the process read-only, wrap the call asmi_raytest_ents in an API_NOP_BEGIN API_NOP_END block:

 outcome out(0);
 API_NOP_BEGIN
 out = asmi_raytest_ents(...)
 API_NOP_END


Errors: Zero length ray_direction specified.  Ray radius less than SPAresabs.  Entity pointer in array is NULL.


Effect: Changes model

Journal: Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
ray_point Specifies the starting point of the ray.
ray_direction Specifies the direction of the ray.
ray_radius Specifies the radius of the ray.
hits_wanted Specifies the number of hits requested.
targets Specifies the array of target assembly models.
ceh_hit Specifies the list of component_entity_handles hits returned.
ray_parameters Specifies the parameters of the ray returned.
ao Specifies the ACIS options such as versioning and journaling.

include <intr_asm_api.hxx>

outcome asmi_restore_model_list ( FileInterface file_if,
asm_model_list primary_models,
asm_restore_options ropts = NULL,
AcisOptions ao = NULL 
)

Restores a list of asm_model objects using a FileInterface object.



Role: The list of primary models that was specified in asmi_save_model_list is returned. Each restored model is bound to a customer entity manager, created by the customer-created entity_mgr_factory that has been globally registered using asmi_set_entity_mgr_factory. This globally registered factory can be overridden for this particular call to asmi_restore_model_list by using an asm_restore_options object.

Errors: NULL model pointer.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
file_if FileInterface object.
primary_models list of root models that were saved.
ropts restore options.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_restore_model_list ( FILE *  file_ptr,
logical  text_mode,
asm_model_list primary_models,
asm_restore_options ropts = NULL,
AcisOptions ao = NULL 
)

Restores one or more assembly models from a file.



Role: The list of primary models that was specified in asmi_save_model_list is returned. Each restored model is bound to a customer entity manager, created by the customer-created entity_mgr_factory that has been globally registered using asmi_set_entity_mgr_factory. This globally registered factory can be overridden for this particular call to asmi_restore_model_list by using an asm_restore_options object.

Errors: NULL model pointer.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
file_ptr open file descriptor.
text_mode TRUE if the file is text, FALSE if it is binary.
primary_models list of root models that were saved.
ropts restore options.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_save_model_atomic ( asm_model model,
asm_save_options sopts = NULL,
AcisOptions ao = NULL 
)

Saves an assembly model and its sub-models to multiple files in atomic mode.



Role: Only the top-level model needs to be specified; the routine automatically saves any sub-models upon which the input model depends.

Note: This routine should only be used to embed atomic ASAT (or ASAB) segments in customer files; it should never be used to write files with .ASAT or .ASAB extensions.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
model top-level model to save.
sopts save options; these include save-with-history and save-as-text.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_save_model_list ( FileInterface file_if,
asm_model_list primary_models,
asm_save_options sopts = NULL,
AcisOptions ao = NULL 
)

Saves a list of asm_model objects to a single file using a FileInterface object.



Role: Only top-level (primary) models need to be specified; the routine automatically saves any sub-models upon which the primary models depend.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
file_if FileInterface object.
primary_models list of root models to save.
sopts save options.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_save_model_list ( FILE *  file_ptr,
logical  text_mode,
asm_model_list primary_models,
asm_save_options sopts = NULL,
AcisOptions ao = NULL 
)

Saves a list of asm_model objects to a single file.



Role: Only top-level (primary) models need to be specified; the routine automatically saves any sub-models upon which the primary models depend.

Errors: NULL model pointer.

Effect: Read-only.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
file_ptr open file descriptor.
text_mode TRUE indicates an ASCII file format; FALSE indicates a binary file.
primary_models list of root models to save.
sopts save options
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

outcome asmi_set_entity_mgr_factory ( entity_mgr_factory *&  factory,
AcisOptions ao = NULL 
)

Resets the globally registered entity manager factory.



Role: This function replaces the current globally registered entity manager factory (used to create entity managers during ASAT restore) with the new factory being passed in. Note that this will call the lose method (signalling a destruction request) on the entity manager factory which is currently registered, and that the lose method will be called on the entity manager factory which is registered when ACIS is terminated.

Effect: Changes model.

Journal: Not Available

Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler

Parameters:
factory The entity_mgr_factory object to be registered.
ao ACIS options such as versioning and journaling.

include <asm_api.hxx>

logical has_assembly ( asm_model model  ) 

Queries a model to determine if it contains a live assembly.



Errors: No entity manager.

Effect: Read-only.

Journal: Not Available

Parameters:
model model which is queried to determine if it owns an assembly entity.

include <asm_api.hxx>