The IfcDirection provides a direction in two or three dimensional space depending on the number of DirectionRatio's provided. The IfcDirection does not imply a vector length, and the direction ratios does not have to be normalized.

XSD Specification

<xs:element name="IfcDirection" type="ifc:IfcDirection" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
<xs:complexType name="IfcDirection">
<xs:complexContent>
<xs:extension base="ifc:IfcGeometricRepresentationItem">
<xs:attribute name="DirectionRatios" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcReal"/>
</xs:simpleType>
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>

EXPRESS Specification

ENTITY IfcDirection
SUBTYPE OF (IfcGeometricRepresentationItem);
DirectionRatios : LIST [2:3] OF IfcReal;
DERIVE
Dim : IfcDimensionCount := HIINDEX(DirectionRatios);
WHERE
MagnitudeGreaterZero : SIZEOF(QUERY(Tmp <* DirectionRatios | Tmp <> 0.0)) > 0;
END_ENTITY;

/* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this file!! */
package com.vfsd.ifc2x3tc1; public class IfcDirection extends IfcGeometricRepresentationItem implements IfcVectorOrDirection, ClassInterface, IfcOrientationSelect
{
private static final String[] nonInverseAttributes = new String[]{"LIST<DOUBLE>"};
private java.util.ArrayList<CloneableObject> stepParameter = null;
private java.util.HashSet<ObjectChangeListener> listenerList = null;
protected int stepLineNumber;
/** DirectionRatios is an DEMANDED attribute - may not be null**/
protected LIST<DOUBLE> DirectionRatios;
/**
* The default constructor.
**/
public IfcDirection(){} /**
* Constructs a new IfcDirection object using the given parameters.
*
* @param DirectionRatios DEMANDED parameter of type LIST<DOUBLE> - may not be null.
**/
public IfcDirection(LIST<DOUBLE> DirectionRatios)
{
this.DirectionRatios = DirectionRatios;
resolveInverses();
} /**
* This method initializes the IfcDirection object using the given parameters.
*
* @param DirectionRatios DEMANDED parameter of type LIST<DOUBLE> - may not be null.
**/
public void setParameters(LIST<DOUBLE> DirectionRatios)
{
this.DirectionRatios = DirectionRatios;
resolveInverses();
} /**
* This method is used internally and should NOT be used for own purposes.
**/
@SuppressWarnings("unchecked")
void initialize(java.util.ArrayList<CloneableObject> parameters)
{
this.DirectionRatios = (LIST<DOUBLE>) parameters.get();
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 IfcDirection.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("IFCDIRECTION(");
if(getRedefinedDerivedAttributeTypes().contains("DirectionRatios")) stepString = stepString.concat("*);");
else{
if(this.DirectionRatios != null) stepString = stepString.concat(((RootInterface)this.DirectionRatios).getStepParameter(DOUBLE.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 DirectionRatios attribute to the given value.
*
* @param DirectionRatios OPTIONAL value to set
**/
public void setDirectionRatios(LIST<DOUBLE> DirectionRatios)
{
this.DirectionRatios = DirectionRatios;
fireChangeEvent();
} /**
* This method returns a copy of the list of the DirectionRatios attribute.
*
* @return a copy of the DirectionRatios list
**/
public LIST<DOUBLE> getDirectionRatios()
{
if(this.DirectionRatios != null)
return new LIST<DOUBLE>(this.DirectionRatios);
return null;
} /**
* This method adds an DOUBLE object to the DirectionRatios list.
* @param DirectionRatios element to be appended to this list.
**/
public void addDirectionRatios(DOUBLE DirectionRatios)
{
if(this.DirectionRatios == null)
this.DirectionRatios = new LIST<DOUBLE>();
this.DirectionRatios.add(DirectionRatios);
fireChangeEvent();
} /**
* This method adds a collection of DOUBLE objects to the DirectionRatios list.
* @param DirectionRatios collection containing elements to be added to this list.
**/
public void addAllDirectionRatios(java.util.Collection<DOUBLE> DirectionRatios)
{
if(this.DirectionRatios == null)
this.DirectionRatios = new LIST<DOUBLE>();
this.DirectionRatios.addAll(DirectionRatios);
fireChangeEvent();
} /**
* This method removes all elements from the DirectionRatios list.
**/
public void clearDirectionRatios()
{
if(this.DirectionRatios != null)
{
this.DirectionRatios.clear();
fireChangeEvent();
}
} /**
* This method removes an DOUBLE object from the DirectionRatios list.
* @param DirectionRatios element to be removed from this list.
**/
public void removeDirectionRatios(DOUBLE DirectionRatios)
{
if(this.DirectionRatios != null)
{
this.DirectionRatios.remove(DirectionRatios);
fireChangeEvent();
}
} /**
* This method removes a collection of DOUBLE objects from the DirectionRatios list.
* @param DirectionRatios collection containing elements to be removed from this list.
**/
public void removeAllDirectionRatios(java.util.Collection<DOUBLE> DirectionRatios)
{
if(this.DirectionRatios != null)
{
this.DirectionRatios.removeAll(DirectionRatios);
fireChangeEvent();
}
} /**
* 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>(,);
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()==) 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
**/
@SuppressWarnings("unchecked")
public Object clone()
{
IfcDirection ifcDirection = new IfcDirection();
if(this.DirectionRatios != null)
ifcDirection.setDirectionRatios((LIST<DOUBLE>)this.DirectionRatios.clone());
return ifcDirection;
} /**
* This method copys the object as shallow copy (all referenced objects are remaining).
*
* @return the cloned object
**/
public Object shallowCopy()
{
IfcDirection ifcDirection = new IfcDirection();
if(this.DirectionRatios != null)
ifcDirection.setDirectionRatios(this.DirectionRatios);
return ifcDirection;
} /**
* This method returns the objects standard description.
*
* @return the standard description
**/
public String toString()
{
return "#"+ this.getStepLineNumber() + " " + this.getClass().getSimpleName();
} }

最新文章

  1. 1Z0-053 争议题目解析486
  2. k.APR通道特殊配置
  3. 项目:DoubleFaceCamera
  4. IIS7报错
  5. 网络加速手段之一,JS文件资源合并下载
  6. Codevs No.1287 矩阵乘法
  7. Android运行时注解
  8. 最近ubuntu 14.04 cpu高入住故障排除
  9. Djangon
  10. 深入Java内存模型之阅读理解(2)
  11. HDU 5069 Harry And Biological Teacher(AC自动机+线段树)
  12. Hadoop--之RPC开发
  13. 链表 c实现
  14. BZOJ5465 APIO2018选圆圈(KD-Tree+堆)
  15. .NetCore源码阅读笔记系列之Security (二) 自定义认证实践
  16. Winform中使用折叠窗口
  17. bzoj4025: 二分图 lct
  18. Oracle导出DMP文件的两种方法
  19. mac mysql中文乱码问题
  20. datagrid中reoload提交时如何批量提交表单中的查询条件

热门文章

  1. 【Spring Boot】Spring Boot之利用Logstash将日志转换成以JSON的格式存储和输出
  2. Odoo onChange使用
  3. restframework详细
  4. 第十二周LINUX学习笔记
  5. tf学习
  6. Vuex之辅助函数
  7. C++的map用法
  8. virtual abstract override
  9. MySQL InnoDB primary key根节点常驻内存
  10. systemd socket activation golang demo