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

IfcAxis2Placement3D的更多相关文章

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

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

  2. IDL 的读写

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

  3. xBIM 格式之间转换

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

  4. xBIM IFC 墙壁案例

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

  5. xBIM 基本的模型操作

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

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

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

  7. xBIM 基础06 将STEP物理文件转换为XML

    系列目录    [已更新最新开发文章,点击查看详细]  一.STEP标准简介 STEP,它是Standard for the Exchange of Product model data的缩写.产品数 ...

  8. xBIM 基础05 3D墙案例

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

  9. xBIM 基础03 基本模型操作

    系列目录    [已更新最新开发文章,点击查看详细]  本篇将使用基本的代码示例来表示如何使用xBIM.我们将介绍持久存储的四个基本功能,即 CRUD(创建,检索,更新和删除).以下示例通常适用于IF ...

随机推荐

  1. Git for Windows安装教程

    1.国内直接从官网(http://git-scm.com/download/win)下载比较困难,速度极慢,需要翻墙. 这里提供一个国内的下载站,方便网友下载(https://npm.taobao.o ...

  2. Palisection(Codeforces Beta Round #17E+回文树)

    题目链接 传送门 题意 给你一个串串,问你有多少对回文串相交. 思路 由于正着做不太好算答案,那么我们考虑用总的回文对数减去不相交的回文对数. 而不相交的回文对数可以通过计算以\(i\)为右端点的回文 ...

  3. 拖拽插件SortableJS

    在项目中,经常会遇到一些涉及到拖拽的需求,github上面有一个开源的SortableJS的插件,支持Vue,React,Angular等多种框架,实现效果很好,基本可以满足大部分的需求,下面就第一次 ...

  4. js 正则表达式 贪婪与惰性

    首先引入一个介绍比较详细的网站 http://www.jb51.net/article/31491.htm 接下来是本人的简介 其实贪婪和惰性很容易理解,从字面意思我们就可以知道,所谓的"贪 ...

  5. P1486 [NOI2004]郁闷的出纳员[权值线段树]

    权值线段树. 我们只用维护一个人是否存在,以及他当前排名,而不关心工资的具体值,这个可以直接算. 不难发现,如果不考虑新的员工,所有员工的工资的差值是不变的. 而加进来一个新的员工时,其工资为\(x\ ...

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

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

  7. Collections.synchronizedList使用

    1.SynchronizedList类具体代码: static class SynchronizedList<E> extends SynchronizedCollection<E& ...

  8. SpringBoot整合Spring Data Elasticsearch

    Spring Data Elasticsearch提供了ElasticsearchTemplate工具类,实现了POJO与elasticsearch文档之间的映射 elasticsearch本质也是存 ...

  9. multipart/form-data与数据封装

    方案一: 将所有数据先格式化(编码)成可读字符串,然后转化成bytes的形式. 方案二: 将每一个部分分别转化成(或者直接使用)bytes的形式,然后串联到一起. http://www.jianshu ...

  10. 注解 @EnableFeignClients 工作原理

    概述在Spring cloud应用中,当我们要使用feign客户端时,一般要做以下三件事情 : 使用注解@EnableFeignClients启用feign客户端:示例 : @SpringBootAp ...