The IfcAxis2Placement3D provides location and orientations to place items in a three-dimensional space. The attribute Axis defines the Z direction, RefDirection the X direction. The Y direction is derived.
If the attribute values for Axis and RefDirection are not given, the placement defaults to P[1] (x-axis) as [1.,0.,0.], P[2] (y-axis) as [0.,1.,0.] and P[3] (z-axis) as [0.,0.,1.].
/* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this file!! */ package com.vfsd.ifc2x3tc1; public class IfcAxis2Placement3D extends IfcPlacement implements IfcAxis2Placement, ClassInterface { private static final String[] nonInverseAttributes = new String[]{"IfcCartesianPoint","IfcDirection","IfcDirection"}; private java.util.ArrayList<CloneableObject> stepParameter = null; private java.util.HashSet<ObjectChangeListener> listenerList = null; protected int stepLineNumber; /** Axis is an OPTIONAL attribute**/ protected IfcDirection Axis; /** RefDirection is an OPTIONAL attribute**/ protected IfcDirection RefDirection; /** * The default constructor. **/ public IfcAxis2Placement3D(){} /** * Constructs a new IfcAxis2Placement3D object using the given parameters. * * @param Location DEMANDED parameter of type IfcCartesianPoint - may not be null. * @param Axis OPTIONAL parameter of type IfcDirection * @param RefDirection OPTIONAL parameter of type IfcDirection **/ public IfcAxis2Placement3D(IfcCartesianPoint Location, IfcDirection Axis, IfcDirection RefDirection) { this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; resolveInverses(); } /** * This method initializes the IfcAxis2Placement3D object using the given parameters. * * @param Location DEMANDED parameter of type IfcCartesianPoint - may not be null. * @param Axis OPTIONAL parameter of type IfcDirection * @param RefDirection OPTIONAL parameter of type IfcDirection **/ public void setParameters(IfcCartesianPoint Location, IfcDirection Axis, IfcDirection RefDirection) { this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; resolveInverses(); } /** * This method is used internally and should NOT be used for own purposes. **/ void initialize(java.util.ArrayList<CloneableObject> parameters) { this.Location = (IfcCartesianPoint) parameters.get(0); this.Axis = (IfcDirection) parameters.get(1); this.RefDirection = (IfcDirection) parameters.get(2); resolveInverses(); } /** * This method is used internally and should NOT be used for own purposes. **/ void destruct() { super.destruct(); listenerList = null; } private void resolveInverses() { } /** * This method is used internally and should NOT be used for own purposes. **/ String[] getNonInverseAttributeTypes() { return IfcAxis2Placement3D.nonInverseAttributes; } /** * This method is used internally and should NOT be used for own purposes. **/ private java.util.HashSet<String> getRedefinedDerivedAttributeTypes() { java.util.HashSet<String> redefinedDerivedAttributes = new java.util.HashSet<String>(); return redefinedDerivedAttributes; } /** * This method returns the object IFC STEP representation. This method is called by the IfcModel object to write IFC STEP files. * * @return the IFC STEP representation of this object **/ public String getStepLine() { String stepString = new String("#"+this.stepLineNumber+"= "); stepString = stepString.concat("IFCAXIS2PLACEMENT3D("); if(getRedefinedDerivedAttributeTypes().contains("Location")) stepString = stepString.concat("*,"); else{ if(this.Location != null) stepString = stepString.concat(((RootInterface)this.Location).getStepParameter(IfcCartesianPoint.class.isInterface())+","); else stepString = stepString.concat("$,"); } if(getRedefinedDerivedAttributeTypes().contains("Axis")) stepString = stepString.concat("*,"); else{ if(this.Axis != null) stepString = stepString.concat(((RootInterface)this.Axis).getStepParameter(IfcDirection.class.isInterface())+","); else stepString = stepString.concat("$,"); } if(getRedefinedDerivedAttributeTypes().contains("RefDirection")) stepString = stepString.concat("*);"); else{ if(this.RefDirection != null) stepString = stepString.concat(((RootInterface)this.RefDirection).getStepParameter(IfcDirection.class.isInterface())+");"); else stepString = stepString.concat("$);"); } return stepString; } /** * This method is used internally and should NOT be used for own purposes. **/ public String getStepParameter(boolean isSelectType) { return "#" + this.stepLineNumber; } /** * This method returns the line number within a IFC STEP representation. This method is called from other objects, where this one is referenced. * * @return the STEP line number **/ public int getStepLineNumber() { return this.stepLineNumber; } /** * This method is used internally and should NOT be used for own purposes. **/ void setStepLineNumber(int number) { this.stepLineNumber = number; } /** * This method sets the Axis attribute to the given value. * * @param Axis DEMANDED value to set - may not be null **/ public void setAxis(IfcDirection Axis) { this.Axis = Axis; fireChangeEvent(); } /** * This method returns the value of the Axis attribute. * * @return the value of Axis /**/ public IfcDirection getAxis() { return this.Axis; } /** * This method sets the RefDirection attribute to the given value. * * @param RefDirection DEMANDED value to set - may not be null **/ public void setRefDirection(IfcDirection RefDirection) { this.RefDirection = RefDirection; fireChangeEvent(); } /** * This method returns the value of the RefDirection attribute. * * @return the value of RefDirection /**/ public IfcDirection getRefDirection() { return this.RefDirection; } /** * This method is used internally and should NOT be used for own purposes. **/ void setStepParameter(java.util.ArrayList<CloneableObject> parameter) { this.stepParameter = parameter; } /** * This method is used internally and should NOT be used for own purposes. **/ java.util.ArrayList<CloneableObject> getStepParameter() { return this.stepParameter; } /** * This method registers an ObjectChangeListener to this object. An event is fired whenever one of its values was changed. * *@param listener the listener to register **/ public void addObjectChangeListener(ObjectChangeListener listener) { if (listenerList == null) listenerList = new java.util.HashSet<ObjectChangeListener>(1,1); listenerList.add(listener); } /** * This method unregisters an ObjectChangeListener from this object. * *@param listener the listener to unregister **/ public void removeObjectChangeListener(ObjectChangeListener listener) { if (listenerList == null) return; listenerList.remove(listener); if (listenerList.size()==0) listenerList = null; } /** * This method removes all currently registered ObjectChangeListeners from this object. **/ public void removeAllObjectChangeListeners() { listenerList = null; } protected void fireChangeEvent() { if(listenerList == null) return; for(ObjectChangeListener listener : listenerList) listener.ifcModelObjectChange(this); } /** * This method clones the object (deep cloning). * * @return the cloned object **/ public Object clone() { IfcAxis2Placement3D ifcAxis2Placement3D = new IfcAxis2Placement3D(); if(this.Location != null) ifcAxis2Placement3D.setLocation((IfcCartesianPoint)this.Location.clone()); if(this.Axis != null) ifcAxis2Placement3D.setAxis((IfcDirection)this.Axis.clone()); if(this.RefDirection != null) ifcAxis2Placement3D.setRefDirection((IfcDirection)this.RefDirection.clone()); return ifcAxis2Placement3D; } /** * This method copys the object as shallow copy (all referenced objects are remaining). * * @return the cloned object **/ public Object shallowCopy() { IfcAxis2Placement3D ifcAxis2Placement3D = new IfcAxis2Placement3D(); if(this.Location != null) ifcAxis2Placement3D.setLocation(this.Location); if(this.Axis != null) ifcAxis2Placement3D.setAxis(this.Axis); if(this.RefDirection != null) ifcAxis2Placement3D.setRefDirection(this.RefDirection); return ifcAxis2Placement3D; } /** * This method returns the objects standard description. * * @return the standard description **/ public String toString() { return "#"+ this.getStepLineNumber() + " " + this.getClass().getSimpleName(); } }