1 // Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // File : SMESH_Mesh.idl
24 // Author : Paul RASCLE, EDF
26 #ifndef _SMESH_MESH_IDL_
27 #define _SMESH_MESH_IDL_
29 #include "SALOME_Exception.idl"
30 #include "SALOME_GenericObj.idl"
31 #include "GEOM_Gen.idl"
36 interface SMESH_Hypothesis;
37 typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
38 interface SMESH_GroupBase;
39 typedef sequence<SMESH_GroupBase> ListOfGroups;
40 interface SMESH_IDSource;
41 typedef sequence<SMESH_IDSource> ListOfIDSources;
43 typedef sequence<double > double_array ;
44 typedef sequence<long > long_array ;
45 typedef sequence<string > string_array ;
46 typedef sequence<long_array> array_of_long_array ;
64 CHANGE_POLYHEDRON_NODES,
75 ADD_BIQUAD_QUADRANGLE,
89 struct PointStruct { double x;
93 typedef sequence<PointStruct> nodes_array;
95 struct DirStruct { PointStruct PS ; } ; // analog to Occ Direction
97 struct AxisStruct { double x;
105 * Node location on a shape
107 struct NodePosition {
109 GEOM::shape_type shapeType;
110 double_array params; // [U] on EDGE, [U,V] on FACE, [] on the rest shapes
114 * Enumeration for element type, like in SMDS
126 typedef sequence<ElementType> array_of_ElementType ;
129 * Enumeration for element geometry type, like in SMDS
136 Geom_QUADRANGLE, // when a new GeometryType is added, please
137 Geom_POLYGON, // update a corresponding list in SMESH_2smeshpy.cxx, ln 665
142 Geom_HEXAGONAL_PRISM,
148 * ElementOrder points out entities of what order are requested
151 ORDER_ANY, /*! entities of any order */
152 ORDER_LINEAR, /*! entities of 1st order */
153 ORDER_QUADRATIC /*! entities of 2nd order */
158 * Enumeration of entity type used in mesh info array,
159 * it should be synchronised with enum SMDSAbs_EntityType
168 Entity_Quad_Triangle,
170 Entity_Quad_Quadrangle,
171 Entity_BiQuad_Quadrangle,
183 Entity_Hexagonal_Prism,
185 Entity_Quad_Polyhedra,
192 * Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
194 enum Hypothesis_Status // in the order of severity
197 HYP_MISSING, // algo misses a hypothesis
198 HYP_CONCURENT, // several applicable hypotheses
199 HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
200 HYP_HIDDEN_ALGO, // an algo is hidden by an upper dim algo generating all-dim elements
201 HYP_HIDING_ALGO, // an algo hides lower dim algos by generating all-dim elements
202 HYP_UNKNOWN_FATAL,// --- all statuses below should be considered as fatal
203 // for Add/RemoveHypothesis operations
204 HYP_INCOMPATIBLE, // hypothesis does not fit algo
205 HYP_NOTCONFORM, // not conform mesh is produced appling a hypothesis
206 HYP_ALREADY_EXIST,// such hypothesis already exist
207 HYP_BAD_DIM, // bad dimension
208 HYP_BAD_SUBSHAPE, // shape is neither the main one, nor its sub-shape, nor a group
209 HYP_BAD_GEOMETRY, // geometry mismatches algorithm's expectation
210 HYP_NEED_SHAPE // algorithm can work on shape only
214 * Enumeration for DriverMED read status (used by ImportMEDFile() method)
216 enum DriverMED_ReadStatus // in the order of severity
219 DRS_EMPTY, // a MED file contains no mesh with the given name
220 DRS_WARN_RENUMBER, // a MED file has overlapped ranges of element numbers,
221 // so the numbers from the file are ignored
222 DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
223 DRS_FAIL // general failure (exception etc.)
227 * Enumeration for DriverMED (used by Perform() method)
229 enum MED_VERSION // in the order of severity
235 typedef sequence<log_block> log_array;
239 * Auxilary flags for advanced extrusion.
240 * BOUNDARY: create or not boundary for result of extrusion
241 * SEW: try to use existing nodes or create new nodes in any case
243 const long EXTRUSION_FLAG_BOUNDARY = 1;
244 const long EXTRUSION_FLAG_SEW = 2;
247 * Structure used in mesh edit preview data (MeshPreviewStruct)
249 struct ElementSubType { ElementType SMDS_ElementType;
251 long nbNodesInElement; };
253 typedef sequence<ElementSubType> types_array;
256 * Structure containing mesh edit preview data
258 struct MeshPreviewStruct { nodes_array nodesXYZ;
259 long_array elementConnectivities;
260 types_array elementTypes; };
262 interface SMESH_Mesh;
264 interface SMESH_IDSource
267 * Returns a sequence of all element IDs
272 * Returns statistic of mesh elements
273 * @return array of number enityties by index of EntityType
275 long_array GetMeshInfo();
278 * Returns types of elements it contains.
279 * It's empty if the SMESH_IDSource contains no IDs
281 array_of_ElementType GetTypes();
286 SMESH_Mesh GetMesh();
289 * Returns false if GetMeshInfo() returns incorrect information that may
290 * happen if mesh data is not yet fully loaded from the file of study.
292 boolean IsMeshInfoCorrect();
295 interface SMESH_Group;
296 interface SMESH_GroupOnGeom;
298 interface SMESH_GroupOnFilter;
299 interface SMESH_subMesh;
300 interface SMESH_MeshEditor;
302 typedef sequence<SMESH_subMesh> submesh_array;
303 typedef sequence<submesh_array> submesh_array_array;
305 interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
308 * Return true if there is a geometry to be meshed
310 boolean HasShapeToMesh()
311 raises (SALOME::SALOME_Exception);
314 * Get geom shape to mesh. A result sould not be nil. Use HasShapeToMesh()
315 * to know if a returned shape
317 GEOM::GEOM_Object GetShapeToMesh()
318 raises (SALOME::SALOME_Exception);
321 * Return false if the mesh is not yet fully loaded from the study file
324 raises (SALOME::SALOME_Exception);
327 * Load full mesh data from the study file
330 raises (SALOME::SALOME_Exception);
333 * Remove all nodes and elements
336 raises (SALOME::SALOME_Exception);
339 * Get the list of sub-meshes existing in the mesh
341 submesh_array GetSubMeshes()
342 raises (SALOME::SALOME_Exception);
345 * Remove all nodes and elements of submesh
347 void ClearSubMesh(in long ShapeID)
348 raises (SALOME::SALOME_Exception);
351 * Get the subMesh object associated to a Sub-shape. The subMesh object
352 * gives access to nodes and elements IDs.
353 * SubMesh will be used instead of Sub-shape in a next idl version to
354 * adress a specific subMesh...
356 SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
357 raises (SALOME::SALOME_Exception);
362 void RemoveSubMesh(in SMESH_subMesh aSubMesh)
363 raises (SALOME::SALOME_Exception);
369 SMESH_Group CreateGroup( in ElementType elem_type,
371 raises (SALOME::SALOME_Exception);
374 * Create a group from geometry
376 SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elemType,
378 in GEOM::GEOM_Object geomObject )
379 raises (SALOME::SALOME_Exception);
382 * Create a group from filter
384 SMESH_GroupOnFilter CreateGroupFromFilter( in ElementType elemType,
386 in SMESH::Filter filter )
387 raises (SALOME::SALOME_Exception);
392 void RemoveGroup(in SMESH_GroupBase aGroup)
393 raises (SALOME::SALOME_Exception);
396 * Remove group with its contents
398 void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
399 raises (SALOME::SALOME_Exception);
402 * Get the list of groups existing in the mesh
404 ListOfGroups GetGroups()
405 raises (SALOME::SALOME_Exception);
408 * Get number of groups existing in the mesh
411 raises (SALOME::SALOME_Exception);
414 * Union of two groups
415 * New group is created. All mesh elements that are
416 * present in initial groups are added to the new one
418 SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
419 in SMESH_GroupBase aGroup2,
421 raises (SALOME::SALOME_Exception);
424 * Union of list of groups
425 * New group is created. All mesh elements that are
426 * present in initial groups are added to the new one
428 SMESH_Group UnionListOfGroups (in ListOfGroups aListOfGroups,
430 raises (SALOME::SALOME_Exception);
433 * Intersection of two groups
434 * New group is created. All mesh elements that are
435 * present in both initial groups are added to the new one.
437 SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
438 in SMESH_GroupBase aGroup2,
440 raises (SALOME::SALOME_Exception);
443 * Intersection of list of groups
444 * New group is created. All mesh elements that are
445 * present in all initial groups simultaneously are added to the new one.
447 SMESH_Group IntersectListOfGroups (in ListOfGroups aListOfGroups,
449 raises (SALOME::SALOME_Exception);
453 * New group is created. All mesh elements that are present in
454 * main group but do not present in tool group are added to the new one
456 SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
457 in SMESH_GroupBase aToolGroup,
459 raises (SALOME::SALOME_Exception);
462 * Cut of lists of groups
463 * New group is created. All mesh elements that are present in
464 * main groups but do not present in tool groups are added to the new one
466 SMESH_Group CutListOfGroups (in ListOfGroups aMainGroups,
467 in ListOfGroups aToolGroups,
469 raises (SALOME::SALOME_Exception);
472 * Create groups of entities from existing groups of superior dimensions
473 * New group is created. System
474 * 1) extracts all nodes from each group,
475 * 2) combines all elements of specified dimension laying on these nodes.
477 SMESH_Group CreateDimGroup( in ListOfGroups aListOfGroups,
478 in ElementType anElemType,
480 raises (SALOME::SALOME_Exception);
483 * Convert group on geometry or on filter into standalone group
485 SMESH_Group ConvertToStandalone( in SMESH_GroupBase theGroupOn )
486 raises (SALOME::SALOME_Exception);
489 * Add hypothesis to the mesh, under a particular Sub-shape
490 * (or the main shape itself)
491 * The Add method is only used to prepare the build of the mesh and store
492 * the algorithms and associated parameters.
493 * Actual job of mesh the shape is done by MESH_Gen.
495 * - aSubShape : sub-shape obtained by a shape explode in GEOM
497 * - anHyp : hypothesis object
499 * - OK if the hypothesis is compatible with the sub-shape
500 * (and all previous hypothesis on the sub-shape)
501 * - NOK if the hypothesis is not compatible with the sub-shape
502 * (or one previous hypothesis on the sub-shape)
503 * raises exception if hypothesis has not been created
505 Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject,
506 in SMESH_Hypothesis anHyp)
507 raises (SALOME::SALOME_Exception);
508 // boolean AddHypothesis(in SMESH_subMesh aSubMesh, in SMESH_Hypothesis anHyp)
509 // raises (SALOME::SALOME_Exception);
512 * Remove an hypothesis previouly added with AddHypothesis.
514 Hypothesis_Status RemoveHypothesis(in GEOM::GEOM_Object aSubObject,
515 in SMESH_Hypothesis anHyp)
516 raises (SALOME::SALOME_Exception);
517 // boolean RemoveHypothesis(in SMESH_subMesh aSubMesh,
518 // in SMESH_Hypothesis anHyp)
519 // raises (SALOME::SALOME_Exception);
522 * Get the list of hypothesis added on a sub-shape
524 ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Object aSubObject)
525 raises (SALOME::SALOME_Exception);
526 // ListOfHypothesis GetHypothesisList(in SMESH_subMesh aSubMesh)
527 // raises (SALOME::SALOME_Exception);
530 * Get the log of nodes and elements added or removed since previous
533 * - clearAfterGet : log is emptied after Get (safe if concurrents access)
535 // string_array GetLog(in boolean clearAfterGet)
536 // raises (SALOME::SALOME_Exception);
537 log_array GetLog(in boolean clearAfterGet)
538 raises (SALOME::SALOME_Exception);
541 * Clear the log of nodes and elements added or removed since previous
542 * clear. Must be used immediately after GetLog if clearAfterGet is false.
545 raises (SALOME::SALOME_Exception);
548 * Toggle auto color mode on the object.
550 * - theAutoColor : flag which toggles auto color mode.
552 void SetAutoColor(in boolean theAutoColor)
553 raises (SALOME::SALOME_Exception);
556 * Get flag of object's auto color mode.
558 boolean GetAutoColor()
559 raises (SALOME::SALOME_Exception);
562 * Get the internal Id
572 * Obtain instance of SMESH_MeshEditor
574 SMESH_MeshEditor GetMeshEditor()
575 raises (SALOME::SALOME_Exception);
578 * Return SMESH_MeshEditor that would not modify the mesh but
579 * fill MeshPreviewStruct
581 SMESH_MeshEditor GetMeshEditPreviewer()
582 raises (SALOME::SALOME_Exception);
585 * Return true if the mesh has been edited since a total re-compute
586 * and those modifications may prevent successful partial re-compute
588 boolean HasModificationsToDiscard()
589 raises (SALOME::SALOME_Exception);
591 /*! Check group names for duplications.
592 * Consider maximum group name length stored in MED file.
594 boolean HasDuplicatedGroupNamesMED();
597 * Export Mesh to different MED Formats
599 * - file : name of the MED file
600 * - auto_groups : boolean parameter for creating/not creating
601 * the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
602 * the typical use is auto_groups=false.
603 * - version : define the version of format of MED file, that will be created
604 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
606 void ExportToMEDX( in string file,
607 in boolean auto_groups,
608 in MED_VERSION version,
609 in boolean overwrite ) raises (SALOME::SALOME_Exception);
612 * Export a part of Mesh into a MED file
614 * - meshPart : a part of mesh to store
615 * - file : name of the MED file
616 * - version : define the version of format of MED file, that will be created
617 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
619 void ExportPartToMED( in SMESH_IDSource meshPart,
621 in boolean auto_groups,
622 in MED_VERSION version,
623 in boolean overwrite ) raises (SALOME::SALOME_Exception);
626 * Export Mesh to different MED Formats
627 * Works, just the same as ExportToMEDX, with overwrite parameter equal to true.
628 * The method is kept in order to support old functionality
630 void ExportToMED( in string file, in boolean auto_groups, in MED_VERSION theVersion )
631 raises (SALOME::SALOME_Exception);
634 * Export Mesh to MED_V2_1 MED format
635 * Works, just the same as ExportToMEDX with MED_VERSION parameter equal to MED_V2_1
636 * and overwrite parameter equal to true
637 * The method is kept in order to support old functionality
639 void ExportMED( in string file, in boolean auto_groups )
640 raises (SALOME::SALOME_Exception);
643 * Export Mesh to SAUV formatted file
644 * Write a temporary med file and use med2sauv
646 void ExportSAUV( in string file, in boolean auto_groups )
647 raises (SALOME::SALOME_Exception);
650 * Return string representation of a MED file version comprising nbDigits
652 string GetVersionString(in MED_VERSION version, in short nbDigits);
655 * Export Mesh to different Formats
656 * (UNV supported version is I-DEAS 10)
658 void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
659 void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
660 void ExportSTL( in string file,
661 in boolean isascii ) raises (SALOME::SALOME_Exception);
662 void ExportCGNS( in SMESH_IDSource meshPart,
664 in boolean overwrite ) raises (SALOME::SALOME_Exception);
665 void ExportGMF( in SMESH_IDSource meshPart,
667 in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
668 void ExportPartToDAT( in SMESH_IDSource meshPart,
669 in string file ) raises (SALOME::SALOME_Exception);
670 void ExportPartToUNV( in SMESH_IDSource meshPart,
671 in string file ) raises (SALOME::SALOME_Exception);
672 void ExportPartToSTL( in SMESH_IDSource meshPart,
674 in boolean isascii ) raises (SALOME::SALOME_Exception);
679 SALOME_MED::MESH GetMEDMesh()
680 raises (SALOME::SALOME_Exception);
683 * Get informations about mesh contents
686 raises (SALOME::SALOME_Exception);
689 raises (SALOME::SALOME_Exception);
692 raises (SALOME::SALOME_Exception);
695 raises (SALOME::SALOME_Exception);
698 raises (SALOME::SALOME_Exception);
700 long NbEdgesOfOrder(in ElementOrder order)
701 raises (SALOME::SALOME_Exception);
704 raises (SALOME::SALOME_Exception);
706 long NbFacesOfOrder(in ElementOrder order)
707 raises (SALOME::SALOME_Exception);
710 raises (SALOME::SALOME_Exception);
712 long NbTrianglesOfOrder(in ElementOrder order)
713 raises (SALOME::SALOME_Exception);
716 raises (SALOME::SALOME_Exception);
718 long NbQuadranglesOfOrder(in ElementOrder order)
719 raises (SALOME::SALOME_Exception);
721 long NbBiQuadQuadrangles()
722 raises (SALOME::SALOME_Exception);
725 raises (SALOME::SALOME_Exception);
728 raises (SALOME::SALOME_Exception);
730 long NbVolumesOfOrder(in ElementOrder order)
731 raises (SALOME::SALOME_Exception);
734 raises (SALOME::SALOME_Exception);
736 long NbTetrasOfOrder(in ElementOrder order)
737 raises (SALOME::SALOME_Exception);
740 raises (SALOME::SALOME_Exception);
742 long NbHexasOfOrder(in ElementOrder order)
743 raises (SALOME::SALOME_Exception);
745 long NbTriQuadraticHexas()
746 raises (SALOME::SALOME_Exception);
749 raises (SALOME::SALOME_Exception);
751 long NbPyramidsOfOrder(in ElementOrder order)
752 raises (SALOME::SALOME_Exception);
755 raises (SALOME::SALOME_Exception);
757 long NbPrismsOfOrder(in ElementOrder order)
758 raises (SALOME::SALOME_Exception);
760 long NbHexagonalPrisms()
761 raises (SALOME::SALOME_Exception);
764 raises (SALOME::SALOME_Exception);
767 raises (SALOME::SALOME_Exception);
769 long_array GetElementsId()
770 raises (SALOME::SALOME_Exception);
772 long_array GetElementsByType( in ElementType theType )
773 raises (SALOME::SALOME_Exception);
775 long_array GetNodesId()
776 raises (SALOME::SALOME_Exception);
779 * Returns type of mesh element
781 ElementType GetElementType( in long id, in boolean iselem )
782 raises (SALOME::SALOME_Exception);
784 EntityType GetElementGeomType( in long id )
785 raises (SALOME::SALOME_Exception);
787 long_array GetSubMeshElementsId(in long ShapeID)
788 raises (SALOME::SALOME_Exception);
790 long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
791 raises (SALOME::SALOME_Exception);
793 ElementType GetSubMeshElementType(in long ShapeID)
794 raises (SALOME::SALOME_Exception);
798 * Methods to set meshing order of submeshes
802 * \brief Return submesh objects list in meshing order
804 submesh_array_array GetMeshOrder();
807 * \brief Set submesh object order
809 boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
813 * Get mesh description
820 long long GetMeshPtr();
823 * Get XYZ coordinates of node as list of double
824 * If there is not node for given ID - returns empty list
826 double_array GetNodeXYZ(in long id);
829 * For given node returns list of IDs of inverse elements
830 * If there is not node for given ID - returns empty list
832 long_array GetNodeInverseElements(in long id);
835 * \brief Return position of a node on shape
837 NodePosition GetNodePosition(in long NodeID);
840 * If given element is node returns IDs of shape from position
841 * If there is not node for given ID - returns -1
843 long GetShapeID(in long id);
846 * For given element returns ID of result shape after
847 * ::FindShape() from SMESH_MeshEditor
848 * If there is not element for given ID - returns -1
850 long GetShapeIDForElem(in long id);
853 * Returns number of nodes for given element
854 * If there is not element for given ID - returns -1
856 long GetElemNbNodes(in long id);
859 * Returns IDs of nodes of given element
861 long_array GetElemNodes(in long id);
864 * Returns ID of node by given index for given element
865 * If there is not element for given ID - returns -1
866 * If there is not node for given index - returns -2
868 long GetElemNode(in long id, in long index);
871 * Returns true if given node is medium node
872 * in given quadratic element
874 boolean IsMediumNode(in long ide, in long idn);
877 * Returns true if given node is medium node
878 * in one of quadratic elements
880 boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
883 * Returns number of edges for given element
885 long ElemNbEdges(in long id);
888 * Returns number of faces for given element
890 long ElemNbFaces(in long id);
893 * Returns nodes of given face (counted from zero) for given volumic element.
895 long_array GetElemFaceNodes(in long elemId, in short faceIndex);
898 * Returns an element based on all given nodes.
900 long FindElementByNodes(in long_array nodes);
903 * Returns true if given element is polygon
905 boolean IsPoly(in long id);
908 * Returns true if given element is quadratic
910 boolean IsQuadratic(in long id);
913 * Returns diameter of a ball discrete element or zero in case of an invalid \a id
915 double GetBallDiameter(in long id);
918 * Returns XYZ coordinates of bary center for given element
920 * If there is not element for given ID - returns empty list
922 double_array BaryCenter(in long id);
924 /*! Gets information about imported MED file */
925 SALOME_MED::MedFileInfo GetMEDFileInfo();
928 * Sets list of notebook variables used for Mesh operations separated by ":" symbol
929 * \param theParameters is a string containing the notebook variables
931 void SetParameters (in string theParameters);
934 * Returns list of notebook variables used for Mesh operations separated by ":" symbol
936 string GetParameters();
939 * Returns list of notebook variables used for last Mesh operation
941 string_array GetLastParameters();
944 interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
949 long GetNumberOfElements()
950 raises (SALOME::SALOME_Exception);
955 long GetNumberOfNodes( in boolean all )
956 raises (SALOME::SALOME_Exception);
961 long_array GetElementsId()
962 raises (SALOME::SALOME_Exception);
967 long_array GetElementsByType( in ElementType theType )
968 raises (SALOME::SALOME_Exception);
971 * Return type of submesh element
973 ElementType GetElementType( in long id, in boolean iselem )
974 raises (SALOME::SALOME_Exception);
979 long_array GetNodesId()
980 raises (SALOME::SALOME_Exception);
983 * Get geom shape the submesh is dedicated to
985 GEOM::GEOM_Object GetSubShape()
986 raises (SALOME::SALOME_Exception);
989 * Get SMESH_Mesh which stores nodes coordinates & elements definition
991 SMESH_Mesh GetFather()
992 raises (SALOME::SALOME_Exception);
995 * Get the internal Id
1002 SALOME_MED::FAMILY GetFamily()
1003 raises (SALOME::SALOME_Exception);