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();
} }

IfcDirection的更多相关文章

  1. IDL 的读写

    read_ifc代码如下: Write_ifc代码分析如下: (1)将数字转换为字符串的函数. function ntoc,a return,string(a,format='(g0)') end ( ...

  2. xBIM IFC 墙壁案例

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  3. 一堵墙IFC数据-wall.ifc

    这是一面墙的IFC数据内容 =====================================文档内容======================================= ISO-1 ...

  4. xBIM 基础05 3D墙案例

    系列目录    [已更新最新开发文章,点击查看详细]  使用编码的形式去生成一堵墙的模型需要做很多的工作. using System; using System.Collections.Generic ...

  5. xBIM之二:构建墙和门窗

    研究了两天,终于实现了利用xBIM自动输出墙和门窗 比较粗糙的源码如下: private void Form1_Load(object sender, EventArgs e) { //first c ...

  6. IfcAxis2Placement3D

    The IfcAxis2Placement3D provides location and orientations to place items in a three-dimensional spa ...

  7. IFC文件介绍

    IFC是一个数据交换标准, 用于不同系统交换和共享数据. IFC是采用EXPRESS语言定义的实体关系模型,由几百个实体对象组成.实体对象包括建筑要素如IfcWall,几何元素如IfcExtruded ...

  8. IfcAxis2Placement3D IFC构件的位置和方向

    IfcAxis2Placement3D定义了三维空间中物体的位置和方向,由三部分组成: The attribute Axis defines the Z direction, RefDirection ...

随机推荐

  1. Vim 简易配置

    Macbook终端vim使用系统剪切板 系统自带的, 可执行程序是 /usr/bin/vim, 安装目录是 /usr/share/vim/, 版本7.3. 我使用 homebrew 后顺手安装了一次 ...

  2. SaltStack--快速入门

    saltstack快速入门 saltstack介绍 Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯 主要功能远程执 ...

  3. css overflow失效的原因

    声明 转载自https://my.oschina.net/xuqianwen/blog/540587 项目中常常有同学遇到这样的问题,现象是给元素设置了overflow:hidden,但超出容器的部分 ...

  4. 性能测试之Jmeter插件安装

    使用Jmeter的实际过程中,需要使用到很多插件,比如json的插件,还有就是做websocket接口测试的时候需要下载websocket的插件,虽然官方提供了插件下载的地址,但是知道为什么每次访问的 ...

  5. httprunner学习20-跳过用例skip/skipIf/skipUnless

    前言 在实际工作中,我们有时候会需要对测试用例加判断,比如某个接口功能暂时去掉了,我们希望对这个用例skip不去执行. 当其它的接口依赖于登陆接口返回的token时候,如果登陆都失败了,后面的接口,我 ...

  6. C语言const和volatile关键字

    这部分内容比较简单,我这里直接先做总结,然后通过写三个测试代码,体会其中的关键点 一.总结      1.const使得变量具有只读属性(但是不一定就是不能更改) 2.const不能定义真正意义上的常 ...

  7. 项目Beta冲刺(团队)--2/7

    课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺 团队名称:葫芦娃队 作业目标:进行新一轮的项目冲刺,尽力完成并完善项目 团队博客 队员学号 队员昵称 博客地址 04160242 ...

  8. sed命令基本用法

    sed是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑sed 适用于以下三种场合:编辑相对交互式文本编辑器而言太大的文件编辑命令太复杂,在交互式文本编辑器中难以输入的情况对文本扫描一遍,但是 ...

  9. Optional类的基本使用(没怎么看)

    参考:https://www.runoob.com/java/java8-optional-class.html java8中引入了一个新类:Optional,用于日常编码中对空指针异常进行限制和处理 ...

  10. windows node版本管理工具nvm

    有时候,不同的项目需要使用不同的node版本.我们可以使用nvm管理不同的node版本.具体使用方法如下: 1.下载安装nvm 点击我下载nvm 解压下载的文件,双击nvm-setup.exe 直接下 ...